Electronic control for an automatic washing machine with a reversing PSC motor

ABSTRACT

A control for an automatic washing machine with a reversing permanent split capacitor (PSC) drive motor. Separate ferrite core sensors surround each of two PSC motor windings. A sense winding is threaded through both sensors. A brief output voltage is generated whenever the alternating current in either PSC motor winding passes through a zero-crossing and when the sense winding is wound with proper mutual polarity, an output voltage is generated in response to zero-crossings of a brief, residual alternating current which flows in both PSC motor windings and the capacitor when the rotating PSC motor is cycled OFF. The circuitry, in combination with the sensors, samples the leading or lagging phase angle of the PSC motor auxiliary or main winding, respectively, at a sample rate of two-times the line frequency when the PSC motor is ON; and further monitors the PSC motor braking phenomena by counting the residual current alternations when the PSC motor is cycled OFF following the powered portion of each CW or CCW agitator stroke. The raw PSC motor phase data is used in microcomputer programs to compute motor start time or load torque dither. This computed information and the PSC motor braking data, is used by other software programs to automatically control various functions of the washing machine such as the fill water level and agitator stroke angle; to control events in an operational sequence such as the duration of the agitation and spin operations; and to provide diagnostic information such as spin off-balance detection.

CROSS REFERENCE TO RELATED APPLICATION

This application is related to an application entitled "ELECTRONICCONTROL FOR AN AUTOMATIC WASHING MACHINE WITH A REVERSING PSC MOTOR,"Ser. No. 07/392,473, filed concurrently herewith by the same inventornames in the present application, and now abandoned.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a control system for an apparatushaving a permanent split capacitor (PSC) motor and more particularly toa control for an automatic washing machine having a reversing PSC motorwherein the operations of the washing machine are controlled in responseto phase angles of the motor determined from sensed zero crossings ofcurrent flowing through the motor's windings when the motor is on and inresponse to the sensed zero crossings of residual motor generatedcurrent flowing through the motor's windings when the motor is off.

2. Description of the Prior Art

A control system for various appliances having an AC induction drivemotor including an automatic washing machine is shown in my U.S. Pat.No. 4,481,786. That control system employs a ferrite core sensor havinga primary winding that is formed of two turns of the drive motor's runwinding, the sensor having a single turn secondary winding that forms asense winding coupled to a motor phase monitoring circuit. The sensewinding provides a signal representing a polarity change in the runwinding current. The current polarity change signal is used by the motorphase monitoring circuit to provide a voltage compensated motor phaseangle pulse to a microcomputer for the appliance to control variousoperations of the appliance. More particularly, a digital representationof the motor phase angle pulse is used by the microcomputer to monitorthe starting of the drive motor by detecting a characteristic decreasein the motor phase angle representation. The motor phase anglerepresentation is further used by the microcomputer of an automaticwashing machine to determine the agitator torque which is in turn usedby the microcomputer to automatically control the water level of thewashing machine. An average motor torque number is also determined fromthe motor phase angle representation wherein the average motor torquenumber is used to provide an end of drain control for the washingmachine.

The washer agitator torque routine (WATR) in FIG. 10 of U.S. Pat. No.4,481,786 applies to washing machines which use a complex transmissionto define the stroke angle and to convert the rotary motion of the motorinto a back-and-forth, clockwise (CW) and counterclockwise (CCW)agitator motion. The motor of U.S. Pat. No. 4,481,786 rotatescontinuously and in a single direction during each clothes agitationperiod. The mid-stoke agitator torque is inferred by using themicrocomputer to store the maximum and minimum motor phase number duringeach CW and CCW agitator stroke and compute the difference. The maximummotor phase number during each CW and CCW stroke occurs when thetransmission gears are positioned such that the agitator is inhesitation. This number provides a base-line or reference motor phasenumber unaffected by agitator torque to which the minimum motor phasenumber or mid-stroke agitator torque can be compared.

The present invention applies to washing machines wherein each reversalof direction of the agitator is achieved by stopping and restarting thedrive motor in the opposite direction. Washing machines of the presentinvention may use a transmission, but the transmission is relativelysimple and provides a basic motor speed reduction and/or torquemultiplication function. The direction of rotation of the motordetermines the agitation direction and the angle of rotation of themotor shaft in conjunction with the transmission gear-ratio determinesthe agitation stroke angle. The present invention teaches how to useinformation from the motor electrical parameters to provide aclosed-loop automatic water level control function in the absence of theabove base-line or reference motor phase information as such informationis not available with a washing machine having a simple, speed-reducingtransmission. Also, the preferred embodiment pertains to a permanentsplit capacitor (PSC) drive motor as PSC motors are generally moreamenable in applications requiring frequent starting, stopping andreversal of the motor rotational direction than split phase inductionmotors.

It has been found that automatic washing machines having reversing PSCdrive motors cannot be as accurately controlled by the control systemshown in U.S. Pat. No. 4,481,786 as washing machines having AC inductionmotors because the motor start time of a PSC motor varies not only withthe size of the clothes load but with variations in the installationline voltage. More particularly, for a washing machine having areversing PSC motor, the line voltage affects the motor start time morethan the size of the clothes load. Further, the motor phase angle of aPSC motor does not change in the same manner as the motor phase angle ofan AC induction motor since there is not a characteristic decrease inthe phase angle of the PSC motor indicative of the motor reaching itsoperating speed. Another difference between washing machines having anAC induction motor and washing machines having a PSC motor is that thestroke angle and stroke rate of an agitator driven by an AC inductionmotor is fixed; whereas, the stroke angle and stroke rate of an agitatordriven by a reversing PSC motor is variable.

SUMMARY OF THE INVENTION

Accordingly, it is an object of the present invention to provide acontrol system for a PSC motor that overcomes many of the disadvantagesof the prior art control systems.

It is another object of the present invention to provide a method andapparatus for determining the braking force on a PSC motor by monitoringthe residual current generated by the motor after the motor has beencycled off.

It is yet another object of the present invention to control variousoperations of a washing machine based on the braking force measured.

In accordance with the present invention, the disadvantages of priorcontrol systems for automatic washing machines with reversing PSC motorshave been overcome. The electronic control system of the presentinvention controls various operations of an automatic washing machinewith a reversing PSC motor in response to a representation of theresidual alternating current flowing through the motor windings when themotor is cycled off. It has been found that the residual alternatingcurrent is substantially unaffected by the installation line voltagebecause the PSC motor is disconnected from the line voltage when the PSCmotor is cycled off during a hesitation period. It is during thehesitation period that the motor's braking action takes place. Theduration of the residual alternating current during the hesitationperiod is inversely proportional to the braking force on the motorwherein the braking force is an indication of the size of the clothesload in the washing machine. Further, the motor's phase angle isanalyzed in a manner particular to reversing PSC motors in order todetermine the start time of the motor, i.e., the time at which the motorreaches its operating speed and further to control various operations ofthe washing machine not shown in U.S. Pat. No. 4,481,786.

The electronic control system of the present invention senses zerocrossings of alternating current in at least one winding of the PSCmotor when the motor is on to provide a representation thereof and whenthe motor is cycled off to provide a representation of residual currentflowing through the motor winding. The residual current is generated bythe motor which acts as a generator as it continues to rotate for aperiod of time after it has been de-energized. The control also detectszero crossings of the line voltage to provide a signal representativethereof wherein a motor phase angle representation is determined inresponse to the time from the voltage zero crossing signal to thecurrent zero crossing signal.

In order to sense the zero crossings of alternating current in a windingof the PSC motor, a ferrite core transformer sensor is employed having aprimary winding that includes at least one turn of a motor winding and asecondary winding at which the current zero crossing signal isgenerated. In the preferred embodiment, two ferrite core transformersensors are employed wherein the primary winding of a first sensorincludes at least one turn of a first motor winding and the primarywinding of the second sensor includes at least one turn of a secondmotor winding. A sense winding extends through the first and secondferrite core transformers to form the secondary windings thereof whereinthe polarity of the sense winding is such that the signals from eachferrite core transformer are additive when the motor is cycled off.

The electronic control of the present invention is responsive to theresidual alternating current representation to determine the size of theload in the washing machine during water fill, agitation or rinseoperations. The electronic control further automatically controls thewater level in the washing machine in response to the residualalternating current representation. During the automatic water levelcontrol operation, the electronic control determines whether an overloadcondition exists from the residual alternating current representationand further determines whether to agitate or not while increasing thewater level. The residual alternating current representation is furtherused to determine the optimal duration of a stroke, i.e., stroke angle,and the stroke rate of the washing machine's agitator such that thelarger the load indicated by the residual alternating currentrepresentation, the greater the stroke angle or duration. The durationof agitation during wash and rinse cycles of the washing machine isfurther controlled in response to the water level which is in turndetermined from the residual alternating current representation.

These and other objects, advantages and novel features of the presentinvention, as well as details of an illustrated embodiment thereof, willbe more fully understood from the following description and the drawing.

BRIEF DESCRIPTION OF THE DRAWING

FIG. 1a is a schematic diagram of a control circuit for an automaticwashing machine having a reversing permanent split capacitor motor andtwo ferrite core sensors;

FIG. 1b is a first alternative embodiment of the sensing portion of thecircuit shown in FIG. 1a employing a single ferrite core sensor;

FIG. 1c is a second alternative embodiment of the sensing portion of thecircuit shown in FIG. 1a employing a single ferrite core, sensor;

FIG. 1d is a third alternative embodiment of the sensing portion of thecircuit shown in FI. 1a employing a single ferrite core sensor;

FIG. 2 is a schematic diagram illustrating the voltage regulator circuitshown in FIG. 1a;

FIG. 3 is a schematic diagram illustrating the volt pulse circuit shownin FIG. 1a;

FIG. 4 is a schematic diagram illustrating the current pulse circuitshown in FIG. 1a;

FIG. 5 is a schematic diagram illustrating the watchdog circuit shown inFIG. 1a;

FIG. 6 is a schematic diagram illustrating the triac driver circuitshown in FIG. 1a;

FIG. 7 is a schematic diagram illustrating the solenoid driver circuitshown in FIG. 1a;

FIG. 8a is a graphical representation of the voltage and currentwaveforms associated with the PSC motor shown in FIG. 1a;

FIG. 8b is a graphical representation of the output from the voltageregulator circuit shown in FIG. 1a;

FIG. 8c is a graphical representation of the output from the volt pulsecircuit shown in FIG. 1a;

FIG. 8d is a graphical representation of the output of the ferrite coresensors with the dashed lines representing the auxiliary and mainwinding currents;

FIG. 8e is a graphical representation of the output of the current pulsecircuit shown in FIG. 1a;

FIGS. 9a, 9c, 9e and 9g are graphical representations illustrating thePSC motor's main and auxiliary winding currents for clothes loads ofvarious sizes ranging from no load in FIG. 9a to a full capacity load inFIG. 9g;

FIGS. 9b, 9d, 9f and 9h are graphical representations illustrating theoutput of the current pulse circuit shown in

FIG 1a generated in response to the sensor outputs for the motor windingcurrents respectively shown in FIGS. 9a, 9c, 9e and 9g;

FIG. 10 is a flow chart illustrating the main program MP for anautomatic washing machine;

FIG. 11 is a flow chart illustrating the lagging phase monitoringroutine LPMR;

FIG. 12 is a flow chart illustrating the PSC motor start routine MSR;

FIG. 13 is a flow chart illustrating the cycle routine CR;

FIG. 14 is a flow chart illustrating the agitate time routine ATR;

FIG. 15 is a flow chart illustrating the stroke routine SR;

FIG. 16 is a flow chart illustrating the residual pulse count routineRPCR;

FIG. 17 is a flow chart illustrating the agitate routine AR;

FIG. 18 is a flow chart illustrating the off-balance routine OBR;

FIG. 19 is a flow chart illustrating the spin routine SPNR; and

FIG. 20 is a perspective view of a vertical axis automatic clotheswashing machine employing the control system of the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

The control system of the present invention is used to control variousoperations of a vertical axis clothes washing machine 600 as shown inFIG. 20. The washing machine 600 includes a reversing permanent splitcapacitor (PSC) motor 10 that drives a spin basket 602 in one directionduring a spin operation of the washing machine. The PSC motor 10 is alsocoupled to an agitator 604 for driving the agitator 604 in clockwise andcounterclockwise directions wherein the PSC motor 10 includes a pair ofmotor windings which alternatively serve as the main motor winding andauxiliary motor winding upon each reversal of the PSC motor 10. Thepowered portion of each clockwise and counterclockwise agitator strokeoccurs when the motor 10 is cycled on. Between each clockwise andcounterclockwise stroke is a hesitation period during which time the PSCmotor 10 is cycled off to allow the PSC motor 10 and the agitator 604 tocome to a complete stop before the direction of the PSC motor 10 and theagitator 604 is reversed.

The control system of the present invention as shown in FIG. 1a anddescribed in detail below senses the zero crossings of current flowingthrough the windings of the PSC motor 10 to provide current pulses 46representative thereof. The system further generates volt pulses 45representing the zero crossings of the alternating line voltageservicing the washing machine. The control system is responsive to thevolt pulse and current pulse signals 45 and 46 to monitor the phaseangle of the main and/or auxiliary windings of the PSC motor 10 duringeach line voltage half cycle when the motor is on to provide phase angleinformation. When the motor is cycled off, the control system of FIG. 1ais responsive to the current pulses 46 representing the zero crossingsof the residual current flowing through the motor windings to provideresidual current information.

The control system of the present invention utilizes variousrelationships between the motor's phase angle and motor torque andbetween the residual current and motor torque to control variousoperations of the washing machine. One such relationship is that thelagging phase angle of the main winding current of the PSC motor 10 isinversely related to the motor torque. Another such relationship is thatthe leading phase angle of the auxiliary winding current of the PSCmotor 10 is directly related to the motor torque. A further relationshipis that the duration of the residual alternating current flowing throughthe PSC motor windings when the motor is cycled off is inversely relatedto the motor torque.

More particularly, a microcomputer 50 shown in FIG. 1a is dedicatedduring a portion of each line half cycle to monitor timing relationshipsbetween the volt and current pulse signals 45 and 46 with crystalcontrolled clock cycles. Through the speed of the microcomputer 50, alldata processing and/or decision making is completed before the arrivalof any volt or current pulse information for the next line half cycle.

The microcomputer 50, when operating in accordance with the laggingphase monitoring routine LPMR, shown in FIG. 11, determines the laggingphase angle of the PSC motor 10 to provide a representation thereof.From the lagging phase angle of the PSC motor 10, the microcomputer 50in accordance with the motor start routine MSR shown in FIG. 12determines the starting time of the PSC motor 10 by detecting acharacteristic increase in the lagging phase angle indicating that thePSC motor 10 has reached its operating speed.

From the motor start time, the microcomputer 50 determines the size ofthe clothes load in the washing machine 600 during a spin operation.More particularly, during a spin operation the PSC motor 10 drives thespin basket 602 of the washing machine 600 in one direction so that themotor start time represents the spin basket acceleration time, i.e., thetime at which the spin basket reaches its operating or preferred spinspeed. During the spin operation, the microcomputer 50, when operated inaccordance with the off balance routine OBR 500 shown in FIG. 18,determines the amount of dither in the motor torque from the laggingphase angle of the motor and from the amount of dither determineswhether an off balance condition exists. The microcomputer 50, operatingin accordance with the spin routine SPNR shown in FIG. 19, furtherdetermines the duration of the spin operation from the motor start timeand a cycle parameter.

The cycle parameter is calculated by the microcomputer 50 in accordancewith the cycle routine CR (FIG. 13) in response to the cycle selectionof the user. The user may select a delicate cycle, a permanent presscycle or a normal cycle by actuating a respective cycle selection button603, 605 and 607 disposed on the washing machine 600. The user mayfurther select the temperature of the wash cycle by actuating atemperature selection button 608, 609 and 611 respectively representinga hot water wash, warm water wash or cold water wash. The temperatureselection parameters are utilized by the microcomputer 50 to determinethe duration of agitation during the wash and deep rinse periods of thewashing machine as discussed below.

When the PSC motor 10 is driving the agitator 604, for each agitatorstroke, the motor start routine MSR is called to determine when themotor 10 reaches its operating speed. At this point, a stroke routine SRshown in FIG. 15 is called to complete the powered portion of thestroke. Following the powered portion of each clockwise andcounterclockwise agitator stroke, the microcomputer 50 operates inaccordance with the residual pulse count routine RPCR (FIG. 16) to countthe number of current pulses 46 representing zero crossings of theresidual alternating current flowing through the motor windings when themotor is cycled off. From the residual pulse count, the microcomputer 50determines the size of the clothes load during the wash and rinseoperations of the washing machine 600. The microcomputer 50, whenoperated in accordance with the stroke routine SR, determines theoptimal duration of each agitator stroke, i.e. stroke angle, and thestroke rate in accordance with the residual pulse count from theprevious stroke and the cycle parameter. For a given cycle parameter,the larger the size of the clothes load as indicated by a small residualpulse count, the greater the stroke angle. Further, for a given sizeclothes load, i.e., a given residual pulse count, the microcomputer 50controls the angle of each agitator stroke such that for a delicatecycle selection, the stroke angle is smaller than for a permanent presscycle selection, the stroke angle for a permanent press cycle selectionbeing smaller than the stroke angle for a normal cycle.

The microcomputer 50 is further responsive to the residual pulse countto automatically control the level of water in the washing machine 600when the microcomputer 50 is operated in accordance with the agitateroutine AR shown in FIG. 17. In accordance with the agitate routine AR,the microcomputer 50 further determines whether an overload conditionexists from the residual pulse count. The microcomputer 50, inaccordance with the agitate routine AR, also determines whether toagitate or not while increasing the water level based on the residualpulse count. The microcomputer 50 further determines the duration ofagitation during the wash and rinse agitation periods of the washingmachine 600 in accordance with an agitate time routine ATR shown in FIG.14. In accordance with the agitate time routine ATR, the watertemperature selection parameter, the cycle selection parameter and thewater level, i.e., size of the clothes load as determined by themicrocomputer 50 from the residual pulse count, are used by themicrocomputer 50 to determine the duration of agitation.

CONTROL SYSTEM CIRCUITRY

As shown in FIG. 1a, the PSC motor 10 has a thermal overload protector11, a first motor winding 12 and a second motor winding 13. The firstmotor winding 12 is connected in series with terminal MT2 of clockwise,CW, triac 31, wherein a single-turn of the first motor winding 12 formsa primary winding 21 of a transformer sensor having a small ferrite core20. The second motor winding 13 is connected in series with terminal MT2of counterclockwise, CCW, triac 32, wherein a single-turn of the secondmotor winding 13 forms a primary winding 22 on a transformer sensorhaving a small ferrite core 23. To power the washing machine 600, themachine is connected to an alternating source of power of, for example,120 VAC, 60 Hertz via a line L1 and a neutral line N as follows. A pumpmotor 16 is connected from the neutral line N to terminal MT2 of a pumpmotor triac 33. The main terminals MT1 of triacs 31, 32 and 33 areconnected to the line L1 of the AC power source. A common electricallead 14 completes a circuit path for both PSC motor windings 12 and 13to the neutral line N of the AC power source through the overloadprotector 11. A permanent split capacitor 15 is connected between points25 and 26 wherein point 25 is between the primary winding 21 of theferrite core sensor 20 and terminal MT2 of CW triac 31 and point 26 isbetween the primary winding 22 of the ferrite core sensor 23 andterminal MT2 of CCW triac 32. A single-turn sense winding 24 is threadedthrough both cores 20 and 23 to maintain mutual polarity between theprimary winding 21 and the sense winding 24 of the ferrite core sensor20 and the primary winding 22 and sense winding 24 of the ferrite coresensor 23 as shown in FIG. 1a so that the signals from each ferrite coresensor are additive for the detection of the residual alternatingcurrent flowing through the motor windings when the PSC motor 10 iscycled off. The sense winding 24 is connected to a current pulse circuit40 shown in detail in FIG. 4 by electrical leads 41 and 42.

The CW and CCW triacs 31 and 32 are never ON simultaneously. Asdiscussed above, there is always a brief hesitation period following theactivation of one PSC motor triac 31, 32 before the other triac 31, 32is energized to allow the agitator and PSC motor 10 to essentially cometo a stop before energizing the PSC motor 10 in the opposite direction.The PSC motor 10 rotates in the clockwise CW direction when the CW triac31 is ON and rotates in the counterclockwise, CCW, direction when theCCW triac 32 is ON. The PSC motor winding in series with the capacitor15 is the AUXILIARY winding and the PSC motor winding which is not inseries with the capacitor 15 is the MAIN winding. Thus, if the CW triac31 is ON, PSC motor winding 12 is the main winding and the winding 13 isthe auxiliary winding. Alternatively, if the CCW triac 32 is ON, the PSCmotor winding 13 is the main motor winding and the winding 12 is theauxiliary motor winding. Under normal operating conditions, the currentpassing through the main winding will lag the line voltage and thecurrent passing through the auxiliary winding will lead the linevoltage. It is the nature of a reversing PSC motor 10 that the identityof the main and auxiliary windings switch each time that the motoroperating direction is reversed. Typical voltage and current waveformsfor a PSC motor 10 are shown graphically in FIG. 8a. As shown in FIG.8a, the auxiliary winding current Ia leads the line voltage V and themain winding current, Im, lags the line voltage V. When the PSC motor 10is fully accelerated, the magnitude of the auxiliary winding current Iais larger than the main winding current Im.

A voltage regulator circuit 70 shown in detail in FIG. 2, is coupled tothe AC power source by electrical leads 43 and 44. The voltage regulatorcircuit 70 is used to generate a regulated source of DC voltage V+ onelectrical line 47 appropriate for the microcomputer 50 and otherelectronics. The voltage regulator circuit 70 also provides a full-waverectified signal voltage 48 (FIG. 8b) to the volt pulse circuit 80 shownin detail in FIG. 3 and a filtered, but unregulated DC bias voltage 49to the current pulse circuit 40 shown in detail in FIG. 4.

The volt pulse circuit 80 provides a binary volt pulse signal 45 (FIG.8c) to the microcomputer 50 wherein each volt pulse represents a zerocrossing of the alternating line voltage. The current pulse circuit 40provides a binary current pulse signal 46 (FIG. 8e) to the microcomputer50 wherein a current pulse is generated in response to thezero-crossings of current flowing through the primary windings 21 and 22of the ferrite core sensors 20 and 23. A watchdog circuit 90, shown indetail in FIG. 5, is further coupled to the microcomputer 50 to providethereto a binary RESET signal 57. The microcomputer 50, in turn,provides both a binary status signal 55 and a volt pulse echo signal 56to the watchdog circuit 90.

One binary output 51 of the microcomputer 50 is used to control a firsttriac driver circuit 60 to provide a control signal which is applied toa gate lead G1 of the CW triac 31. The triac driver circuit 60 is alsoconnected to main terminal MT2 of triac 31. A second binary output 52 ofthe microcomputer 50 is used to control a second triac driver circuit 61to provide a control signal to a gate lead G2 of the CCW triac 32. Thetriac driver circuit 61 is also connected to main terminal MT2 of triac32. Similarly, a third binary output 58 of the microcomputer 50 is usedto control a third triac driver circuit 62 to provide a control signalto a gate lead G3 of the pump motor triac 33. The triac driver circuit62 is also connected to the main terminal MT2 of the triac 33. A binaryoutput 68 of microcomputer 50 is connected to the solenoid drivercircuit 64. The driver circuit 64 is used to control the hot watersolenoid 66. The hot water solenoid 66 is connected from the neutralline N of the line voltage to the solenoid driver circuit 64. Similarly,a binary output 69 of the microcomputer 50 is connected to a solenoiddriver circuit 65. The driver circuit 65 is used to control the coldwater solenoid 66. The cold water solenoid 66 is connected from theneutral line N of the line voltage to the solenoid driver circuit 65.Both solenoid driver circuits 64 and 65 are also connected to the lineL1 of the line voltage.

Additional binary output lines 53 may be required for various consoleindicators such as a machine overload light emitting diode LED 610 oradditional triac or solenoid driver circuits. It will be apparent tothose skilled in the art that some or all of the triac driver circuitsmay be replaced by relay driver circuits. Additional binary input lines54 are coupled to a lid open sensing switch (not shown), the consolecycle selection buttons 603, 605 and 607 and to the console wash watertemperature selection buttons 608, 609 and 611. An additional binaryinput signal may be derived from a pressure-to-frequency transducer toprovide a square-wave frequency signal which corresponds to an analogmachine water level. Such additional binary inputs and outputs are knownto those skilled in the art. It will further be apparent to thoseskilled in the art that the microcomputer 50 may be interfaced with theoutside world through the use of a peripheral interface adapterintegrated circuit to facilitate use of a large number of inputs andoutputs with only a small number of actual microcomputer 50 binary inputor output lines. It will also be apparent to those skilled in the artthat a large number of triacs and other driver circuits andmicrocomputer input/output interfacing techniques may be used within thescope of the present invention. It will be apparent to those skilled inthe art that an external crystal or ceramic resonator circuit is used inconjunction with the microcomputer 50 in accordance with manufacturerspecification to define the internal clock cycles and timing functions.In the preferred embodiment the microcomputer 50 is a Texas InstrumentsTMS7040 which has an 8-bit word size.

The voltage regulator circuit 70 as shown in FIG. 2 generates aregulated DC voltage for all of the electronic circuits, a full-waverectified signal voltage for the volt pulse circuit and an unregulated,DC bias voltage for the current pulse circuit. The voltage regulatorcircuit 70 includes a center-tapped step down transformer TR with diodesD1 and D2 to develop a 120 Hz, full-wave rectified voltage waveform.Capacitor C1 is a pre-filter and capacitor C2 is a post-filter for thevoltage regulator integrated circuit 71. Diode D3 isolates thepre-filtered DC voltage at the input to the voltage regulator 71 fromthe full-wave rectified signal at the cathodes of the diodes D1 and D2.Resistors RS1 and RS2 form a voltage divider circuit and provide asufficient load to forward bias the diodes D1 and D2. High frequencynoise transduced from the primary winding to the secondary winding ofthe transformer TR is filtered by bypass capacitor C3. There are threeoutputs from the voltage regulator circuit 70. The V+ output 47 is aregulated DC voltage for the microcomputer 50 and other electroniccircuits. A filtered, but unregulated DC voltage 49 is available to biasthe sensitivity of the current pulse circuit 40 for the effect ofvariation in the line voltage on the magnitude of the PSC motor currentsavailable at the ferrite core sensors 20 and 23. Further, a 120 Hzfull-wave rectified signal voltage 48 (FIG. 8b) is developed for thevolt pulse circuit 80. In the exemplary embodiment V+ is five volts.

The volt pulse circuit 80 as shown in FIG. 3 receives a full-waverectified voltage signal input from the voltage regulator circuit andgenerates a volt pulse train wherein each binary volt pulse straddlesthe line voltage zero-crossings. The volt pulses occur at two-times linefrequency, regardless of whether the PSC motor is ON, and have a pulsewidth inversely related to the line voltage. The volt pulse circuit 80comprises resistors RS3, RS4, RS5, RS6, RS7 and RS8, a capacitor C4 anda comparator CM1 which is supplied with V+ from the voltage regulatorcircuit 70. Resistor divider RS3 and RS4 is used to define a DC voltagethreshold 81 at the inverting input of comparator CM1. The 120 Hz,full-wave signal 48 from the voltage regulator circuit 70 is applied tothe noninverting input 82 of comparator CM1 through the resistor dividerRS5 and RS6. Resistor RS7 is connected from the output 83 to thenoninverting input 82 of comparator CM1 to provide hysteresis andthereby stabilize transitions of the volt pulse signal 45. A pull-upresistor RS8 is connected to V+ from the output 83 of comparator CM1.Capacitor C4 filters any remaining high frequency noise across theinputs of comparator CM1.

The full-wave rectified voltage signal 48 and DC voltage threshold 81are shown graphically in FIG. 8b. The volt pulse train 45 at the outputof comparator CM1 is shown graphically in FIG. 8c. The volt pulses occurat two-times the line voltage frequency regardless of whether the PSCmotor 10 is ON or OFF. For a 60 Hz source, there are 120 volt pulses persecond. As shown in FIG. 8a, 8b and 8c, the width of each volt pulse mayvary in accordance with the amplitude of the line voltage and hence inaccordance with the full-wave rectified waveform 48 which determines thesteepness or slope of the waveform in the vicinity of the zero value. Ifline voltage V of FIG. 8a and hence, the full-wave rectified waveform 48of FIG. 8b are assumed to be average or mean waveforms which produce thepulses shown in the solid line 45, a line voltage waveform Vh as shownin FIG. 8a having a larger than averge amplitude will produce afull-wave rectified waveform 82 with a larger than average amplitudewherein a narrower pulse 83, as shown in broken lines in FIG. 8c isgenerated in response thereto. Similarly, a line voltage waveform V1having a smaller than average amplitude will produce a full-wavewaveform 84 having a smaller amplitude than the waveform 48 so as toprovide a wider pulse 85, also shown in broken lines in FIG. 8c. Threesuccessive voltage pulses V1, V2 and V3 are shown in FIG. 8c in relationto the full-wave rectified waveform 48. A continuous series of thesevolt pulses 45 is supplied to the microcomputer 50 whenever the washingmachine 600 is connected to the service voltage, i.e., line voltage.

The current flowing through the windings 12 and 13 of the PSC motor issensed by the ferrite core transformer sensors 20 and 23 as follows. Inaccordance with Faraday's law of voltage induction, the electromotiveforce, or voltage, induced across the sense winding 24 is proportionalto the rate of change of the magnetic flux of cores 20 and 23. The cores20 and 23 quickly saturate immediately following each currentzero-crossing of the primary winding currents in wires 21 and 22,respectively. Thus, a sharp voltage spike is generated across terminals41 and 42 of the sense winding 24 whenever the current passing througheither of the PSC motor winding 12 or 13 reverses polarity or passesthrough a zero-crossing. Each core 20 and 23 generates a train ofalternating positive and negative voltage spikes at a rate of two-timesthe line frequency. The magnitude and sharpness of each spike isproportional to the rate of change of the current flowing through theprimary winding 21, 22 at the zero-crossing. However, it is the timingrelationships between the the line voltage and motor currentzero-crossings which is of interest to the present invention as well asthe duration of the residual alternating current flowing through themotor windings 12 and 13 and not the magnitude of the motor current perse or the magnitude of the induced voltage spikes.

For the representative PSC motor 10 waveforms of FIG. 8a, the auxiliarywinding current will pass through each zero-crossing at a faster ratethan the main winding current Im so that the induced voltage spikes fromthe ferrite core in series with the auxiliary winding will be larger andsharper than the induced voltage spikes from the ferrite core in serieswith the main winding. The induced voltage spikes for the first threezero-crossings of the auxiliary winding current are shown in FIG. 8d asvoltage spikes Sa1, Sa2 and Sa3. Similarly, the induced ferrite corevoltage spikes for the first three zero-crossings of the main windingcurrent are shown in FIG. 8d as voltage spikes Sm1, Sm2 and Sm3. Theauxiliary and main winding currents are also shown as dashed lines inFIG. 8d. When the CW triac 31 is ON and the CCW triac 32 is OFF, voltagespikes Sm1, Sm2 and Sm3 are from ferrite core 20 and voltage spikes Sa1,Sa2 and Sa3 are from ferrite core 23. Similarly, when CCW triac 32 is ONand CW triac 31 is OFF, voltage spikes Sm1, Sm2 and Sm3 are from ferritecore 23 and voltage spikes Sa1, Sa2 and Sa3 are from ferrite core 20.The preferred part for ferrite cores 20 and 23 in this embodiment isFair-Rite 43 Shield Bead #2643000801 manufactured by the Fair-RiteProducts Corporation in Wallkill, N.Y. The smaller the inside diameterof the core 20, 23 and the longer the length of the core 20, 23 parallelto the primary winding 21, 22, respectively, the larger the magnitude ofthe induced voltage across the secondary winding 24. The peak magnetudeof the induced voltage spikes Sm1, Sm2 and Sm3 in FIG. 8d is 40millivolts. The cores 20 and 23 are preferably located on a printedcircuit board near the current pulse circuit 40 and other electronics toavoid the use of connectors with the small voltage of the sense winding24. However, the cores 20 and 23 may alternately be located remote fromthe electronics, for example, on or near the PSC motor 10.

The current pulse circuit 40 as shown in FIG. 4 receives the ferritecore sense winding voltage signal as an input and provides a brief,current pulse output in response to the current zero-crossings of theprimary winding of each ferrite core sensor. The current pulse trainoccurs at two-or four-times line frequency for the circuits of FIG. 1with one or two ferrite core sensors, respectively, whenever the PSCmotor 10 is ON. The unregulated, DC bias voltage 49 from the voltageregulator circuit adjusts the sensitivity of the combined sensor andcurrent pulse circuity for the effect of line voltage variation on thePSC motor current. The current pulse circuit 40 uses two voltagecomparators CM2 and CM3 to convert the induced voltage spikes S from theferrite core sensors 20 and 23 to a binary current pulse output signal46. Comparator CM2 responds to the positive induced voltage spikes S andcomparator CM3 responds to the negative induced voltage spikes. Theoutputs of comparators CM2 and CM3 form a logical "wired OR" connectionsuch that either comparator is capable of pulling the output signal 46to the circuit ground, or to a logical zero state. More specifically,the output of both comparators CM2 and CM3 is connected to V+ by thepull-up resistor RS13. The unregulated DC bias voltage 49 from thevoltage regulator circuit 70 is applied across the series resistordivider network comprising resistors RS9, RS10, RS11 and RS12. This hasthe effect of increasing the sensitivity of both comparators CM2 and CM3when the line voltage is low and the rate of change of the motor currentin the vicinity of a current zero-crossing is also low. The preferredcircuit thereby compensates the combined sensitivity of the ferrite coresensors 20 and 23 and the current pulse circuit 40 for the effect ofservice voltage variation on the motor current. However, a resistor RS9may also be connected to V+ if such compensation is not desired. Thecommon connection 84 between resistors RS9 and RS10 is connected to thenoninverting input of a comparator CM2. The common connection 85 betweenresistors RS11 and RS12 is connected to the inverting input of acomparator CM3. The common connection 86 between resistors RS10 and RS11is connected to one end 42 of the sense winding 24 of the ferrite coresensors 20 and 23. The other end 41 of the sense winding 24 is connectedto inverting input of comparator CM3 and the noninverting input ofcomparator CM3. Capacitor C7 is wired in parallel with the ferrite coresignal 41 and 42 and is used to filter high frequency noise on theferite core signal voltage. Much of the high frequency noise originatesfrom the lines L1 and N and is coupled in a capacitive manner from theprimary windings 21 and 22 to the secondary winding 24 of the ferritecores 20 and 23, respectively. The use of single-turn windings 21, 22and 24 on the ferrite cores 20 and 23 minimizes such capacitivelycoupled noise. A further reduction, or elimination, of this noise couldbe achieved through the use of nickel tape-wound cores rather thanferrite cores 20 and 23 because nickel tape-wound cores have a naturalhigh frequency cutoff. However, the preferred circuit uses ferrite cores20 and 23 for cost considerations.

A resistor RS14 is wired in parallel with the ferrite core signal 41 and42 to provide a continuity path which forces the output 46 of thecurrent pulse circuit 40 HIGH in the unlikely event that the sensewinding 24 becomes open-circuited or that the terminals 41 or 42 becomedisconnected. The control interprets missing current pulses 46 in thesame manner as the control interprets an OPEN motor thermal protector11. Hence, a cycle will be aborted in the event that the sensor circuitbecomes OPEN. Capacitors C5 and C6 filter any remaining high frequencynoise across the inputs of comparators CM2 and CM3, respectively. Whenthe voltage across inputs 41 and 42 is zero, resistors RS10 and RS11bias comparators CM2 and CM3, respectively, such that the outputs areHIGH and the current pulse is absent. When a positive induced voltagespike S occurs, such that terminal 41 is temporarily positive withrespect to terminal 42, the input voltage exceeds the DC bias voltageacross resistor RS10 of comparator CM2 and the output of comparator CM2pulls the output 46 of the current pulse circuit 40 LOW. Similarly, whena negative induced voltage spike S occurs, such that terminal 41 istemporarily negative with respect to terminal 42, the input voltageexceeds the DC bias voltage across resistor RS11 of comparator CM3, theoutput of the comparator CM3 pulling the output 46 of the current pulsecircuit 40 LOW. Thus, the current pulse circuit 40 responds to eitherpositive or negative induced voltage spikes from either of the ferritecore sensors 20, 23.

It will be apparent to those skilled in the art that a systematic biascould be introduced in the motor phase data from odd or even numberedline half cycles due to component differences between the resistors RS10and RS11 or between the comparators CM2 and CM3. Similarily, asystematic bias could be introduced in the motor phase data due tooccasional asymmetry in the positive and negative line half cycles due,for example, to a silicon controlled rectifier load, from anotherappliance, which draws power unevenly from alternate line half cycles.Rather than ignoring this potential bias, or, employing costly componentmatching techniques, the preferred embodiment eliminates the effect ofthe above systematic biases through the exclusive use ofauto-referencing software programs of the microcomputer 50 which eitheruse sufficient data memory to make motor phase comparisons withoutmixing data from odd and even numbered line half cycles or which makedecisions from data which include an equal number of motor phase samplesfrom positive and negative line voltage half cycles. The output 46 ofthe current pulse circuit 40 is supplied to the microcomputer 50 as aninterrupt to initiate a timing procedure or to read the present value ofthe timer of the microcomputer on the leading edge of a current pulse. Apulse train of induced ferrite core voltage spikes Sa and Sm andcorresponding current pulses Ia and Im are shown graphically in FIG. 8dand 8e, respectively.

The watchdog circuit 90 is shown in FIG. 5. The watchdog circuitprovides a hard-wired RESET signal to the microcomputer 50 whenever themicrocomputer 50 fails to echo the volt pulse signal 45 to the watchdogcircuit 90 for a preset period of time. The watchdog circuit 90 alsoresets the microcomputer 50 during the initial powerup period. Morespecifically, input 55 to the watchdog circuit 90 is a dedicated statusoutput from the microcomputer 50 which is HIGH whenever themicrocomputer is being RESET and LOW at all other times in accordancewith the software of the microcomputer 50. All outputs of themicrocomputer 50 including output line 55 are HIGH whenever themicrocomputer is RESET. The resistor RS22 is a pull-up resistor at theoutput of the comparator CM4 for the RESET signal 57 to themicrocomputer 50. The microcomputer 50 is being RESET when thecomparator CM4 output 57 is LOW. The resistor RS19 is a pull-up resistorfor the status input 55. When the microcomputer 50 is being RESET, thestatus input 55 is HIGH and the capacitor C8 charges toward V+ throughresistors RS15 and RS19. At all other times the status input 55 is LOWand the capacitor C8 is discharging toward circuit ground through theresistor RS15. The common connection 91 between the resistor RS15 andthe capacitor C8 is wired to the noninverting input of the comparatorCM4 and the cathode of the diode D4. The voltage divider formed by theresistors RS16 and RS17 defines a DC voltage threshold at the invertinginput 92 of the comparator CM4. The resistor RS18 is connected from thestatus input 55 to the inverting input 92 of the comparator CM4. Theresistor RS18 provides feedback to ensure overall stability of thecircuit 90 when the RESET signal 57 is removed and the microcomputerstatus input goes from HIGH to LOW. The capacitor C9 is connected fromthe volt pulse echo input 56 to the anode of diode D4. The resistor RS20is a pullup resistor for the microcomputer 50 volt pulse echo output 56.A current path from the connection 94 between the capacitor C9 and thediode D4 to circuit ground is provided by the resistor RS21.

Under normal operating conditions a volt pulse train 45 comprising 120volt pulses per second is received by the microcoputer 50 and inresponse thereto the microcomputer 50 echos the volt pulse 45 to thewatchdog circuit 90 via watchdog circuit input 56. Energy from thepositive voltage transition at the trailing edge of each volt pulse echosignal is coupled through the capacitor C9 and the diode D4 to chargecapacitor C8. Should either the volt pulse circuit 45 or themicrocomputer 50 become inoperative, the volt pulse echo signal willremain either in the HIGH or the LOW state and the capacitor C8 willdischarge through the resistor RS15 to ground. When the voltage at thenoninverting input 91 of the comparator CM4 drops below the DC thresholdvoltage at the inverting input 92, the comparator CM4 output will switchfrom HIGH to LOW and a RESET signal 57 will be sent to the microcomputer50. If the washing machine is operating in a clothes washing cycle, thecycle will be aborted. Upon recognizing receipt of a RESET signal, allmicrocomputer 50 output lines, including the watchdog status input 55,will go HIGH, and, the capacitor C8 will charge toward V+ through theresistors RS15 and RS19. The feedback resistor RS18 provides a somewhathigher DC threshold at the inverting input 92 of the comparator CM4.When the capacitor C8 has charged sufficiently to cause the voltage atthe noninverting input 91 of the comparator CM4 to exceed the DCthreshold 92 at the inverting input, the comparator CM4 output goes LOW;the status input 55 of the microcomputer 50 to the watchdog circuit 90goes LOW via microcomputer 50 software; and microcompouter 50 isrestored to normal operation. A wash cycle begins the next time that theuser presses a start button 612 or a cycle selection button 603, 605,607. On initial powerup the status input 55 is HIGH and the comparatorCM4 output 57 remains LOW until the capacitor C8 has chargedsufficiently to cause the voltage at the noninverting input 91 to thecomparator CM4 to exceed the DC threshold 92 at the inverting input.Hence, the microcomputer 50 will be RESET on powerup.

The triac driver circuit 60, 61, 62 is shown in FIG. 6. The preferredcircuit uses an optically isolated triac driver integrated circuit 95 toprovide a signal to trigger a large motor triac 31, 32, 33 from a smallbinary microcomputer output signal while maintaining electricalisolation of the microcomputer circuitry from the line voltage. Morespecifically, the preferred circuit uses a MCP 3011 optically isolatedtriac driver IC that contains a light emiting diode D5 and a smallphototriac 96. The anode of the light emiting doide D5 is connected toV+ and the cathode of D5 is connected to a resistor RS23 which is drivenby a binary output from microcomputer 50. The phototriac 96 is connectedfrom the gate of a motor triac 31, 32, 33 to the second main terminalMT2 of the same motor triac 31, 32, 33 via resistors RS24 and RS25. Acapacitor C10 is wired from the common connection 97 of resistors RS24and RS25 to line L1 of the line voltage. A capacitor C10 provides asnubbing circuit for both the phototriac 96 and the motor triac 31, 32,33 via resistors RS24 and RS25, respectively. The snubbing circuitlimits the rate of change of voltage across both the phototriac 96 andthe motor triac 31, 32, 33 and thereby avoids spurious activation ofeither triac in the absense of light energy from the diode D5. More,specifically, when the binary output from the microcomputer 50 is HIGH,the diode D5 is not forward biased, no light energy passes to thephototriac 96, the phototriac 96 is in the OFF or blocking state and themotor triac 31, 32, 33 is not triggered. When the binary output from themicrocomputer 50 is LOW the diode D5 is forward biased, light energypasses from the light emiting diode D5 to the phototriac 96, thephototriac 96 is triggered ON, a circuit is completed from the secondmain terminal MT2 to the gate of the motor triac 31, 32, 33 viaresistors RS24 and RS25 to trigger the motor triac 31, 32, 33.

The solenoid driver circuit 64 is shown in FIG. 7. The preferred circuituses an optically isolated triac driver integrated circuit 99 todirectly drive a small AC solenoid load from a small binary outputsignal of the microcomputer 50 while maintaining electrical isolation ofthe microcomputer circuitry from the line voltage. More specifically,the preferred circuit uses a MCP 3011 optically isolated triac driver ICwhich contains a light emiting diode D6 and a small phototriac 98. Theanode of the light emiting doide D6 is connected to V+ and the cathodeof the diode D6 is connected to the resistor RS26 which is driven by abinary output from microcomputer 50. The phototriac 98 is connected fromthe line L1 of the line voltage to the solenoid load. A snubber circuitcomprising a series resistor RS27 and the capacitor C11 is wired inparallel with the phototriac 98 to limit the rate of change of voltageacross the phototriac 98 and thereby avoid spurious activation of thephototriac 98 in the absense of light energy from the diode D6. When thebinary output from the microcomputer 50 is HIGH, the diode D6 is notforward biased, no light energy passes to the phototriac 98, thephototriac 98 is in the OFF or blocking state and the solenoid load isOFF. When the binary output of the microcomputer 50 binary output is LOWthe diode D6 is forward biased, light energy passes from the lightemiting diode D6 to the phototriac 98; the phototriac 98 is triggered ONand the solenoid load is energized.

Although the values of the components shown in FIG. 2, 3, 4, 5, 6 and 7may be selected to meet individual circuit requirements in a mannerknown to those skilled in the art without departing from the inventiveconcept disclosed herein, an exemplary embodiment of these circuits canbe realized wherein the comparators CM1, CM2, CM3 and CM4 are eachone-quarter of an LM339 quadruple comparator package; the voltageregulator integrated circuit 71 is a 7805 five volt regulator IC; thetriac and solenoid driver circuits 60 and 64 use MCP3011 opticallyisolated triac driver integrated circuits; and wherein the remainingcomponents have the following values:

    ______________________________________                                        COMPONENT   VALUE(OHMS/MICROFARADS)                                           ______________________________________                                        RS1          1.2K                                                             RS2          1K                                                               RS3         100K                                                              RS4          24K                                                              RS5          10K                                                              RS6         100K                                                              RS7         680K                                                              RS8          5.6K                                                             RS9          10K                                                              RS10         12                                                               RS11         12                                                               RS12         10K                                                              RS13         5.6K                                                             RS14        100                                                               RS15        100K                                                              RS16         3.9K                                                             RS17         1K                                                               RS18         10K                                                              RS19         6.8K                                                             RS20         3.3K                                                             RS21         1.5K                                                             RS22         5.6K                                                             RS23        330                                                               RS24        180                                                               RS25        100                                                               RS26        330                                                               RS27        180                                                               C1          1500                                                              C2           33                                                               C3          0.02                                                              C4           0.0047                                                           C5          0.01                                                              C6          0.01                                                              C7          0.68                                                              C8          0.47                                                              C9          0.15                                                              C10         0.02                                                              C11         0.01                                                              ______________________________________                                    

WASHING MACHINE OPERATIONS

The flow chart for main program MP 100 is shown in FIG. 10. The mainprogram MP executes a cycle for the automatic washing machine 600 havinga reversing PSC motor 10. The main program MP 100 initializesparameters; waits for the user to start a cycle; provides an initialwater fill, a wash agitation period, a cooldown period in permanentpress cycles, initial drain and spin extraction periods, an initialdeep-rinse water fill, a deep-rinse agitation period and final drain andspin extraction periods. More specifically, the main program MP 100initializes parameters in program step 101 including program code whichdrives the microcomputer 50 status output line 55 LOW to terminate theinitial RESET in response to the power-up signal 57 from the watchdogcircuit 90. The main program MP 100 then loops repeatedly through theprogram decision step 102 until the user has initiated a cycle. The userinitiates a cycle by pressing an appropriate button associated with abinary input 54 to the microcomputer 50, such as the start button 612 orone of the normal, permanent press or delicate cycle selection buttons603, 605, 607. Hence, whenever the washing machine 600 has completed onecycle and is waiting for the user to initiate the next cycle, the mainprogram MP 100 is looping through the decision step 102.

Upon user actuation of any cycle, the program advances to step 103 atwhich time the washing machine 600 provides an initial wash water fillto a minimum safe water level for clothes agitation to begin. With atrue automatic water level control there is no user input regarding thesize of the clothes load or the desired water level and the washingmachine fills to about half of the maximum water level in step 103.However, in the preferred embodiment, the user has the option ofselecting any one of five water levels via one or more buttons 614 todictate the minimum amount of water that the washing machine 600 usesfor the present cycle in which case the washing machine 60 fills to theuser selected water level at step 103. As discussed in detail below, thecontrol may override the user water level selection and add additionalwater to the wash or deep-rinse agitation procedure. However, thecontrol never uses less than the amount of water specified by the user.After filling to the initial wash water level in step 103 the mainprogram MP 100 calls the agitate routine AR 450 a first time to provideautomatic control and adjustment of the wash agitation period, washwater level, agitation stroke angle and agitation time as per the sizeand the selected type of clothes load and the selected watertemperature.

More particularly, when the agitate routine AR 450 is called, themicrocomputer 50 controls the PSC motor 10 to drive the agitator throughtwenty strokes, ten clockwise strokes and ten counterclockwise strokes.For each stroke the microcomputer activates a triac 31, 32 cycling onthe PSC motor 10 to drive the agitator in either the clockwise orcounterclockwise direction. After activating one of the triacs 31, 32,the microcomputer 50 calls the motor start routine 200 to determine whenthe motor reaches operating speed based on the characteristic increasein the lagging phase angle of the motor. At this point, the poweredportion of the agitator stroke has begun. After determining the motorstart time, the microcomputer 50 returns to the agitate routine AR 450to call the stroke routine SR 350. The stroke routine SR 350 is calledby the microcomputer 50 to complete the powered portion of the agitatorstroke. The microcomputer 50 when operating in accordance with thestroke routine SR 350 computes the remaining time for the poweredportion of each stroke to provide the optimal stroke angle for the sizeof the clothes load as indicated by the residual pulse count determinedfrom the previous stroke, the water level and the user selected cycleparameter. For a given cycle parameter, the larger the size of theclothes load as indicated by a small residual pulse count, the greaterthe stroke angle. Further, for a given size load, the stroke angle for adelicate cycle is smaller than the stroke angle for a permanent presscycle and the stroke angle for a permanent press cycle is smaller thanthe stroke angle for a normal cycle. Upon completing the powered portionof the stroke, the microcomputer 50 returns from the stroke routine SR350 to the agitate routine AR 450 with the motor 10 cycled off When themicrocomputer 50 returns to the agitate routine 450 with the motor 10cycled off, the microcomputer 50 calls the residual pulse count routineRPCR 400 to determine the duration of he residual current flowingthrough the motor windings. Thereafter the microcomputer 50 initiates astroke in the opposition direction.

After twenty strokes are completed, the microcomputer 50 determineswhether the water level has reached the maximum water level. If themaximum water level has not been reached, the microcomputer 50determines whether more water needs to be added based upon the size ofthe load, i.e., the residual pulse count. The microcomputer 50 thendetermines whether to agitate or not while increasing the water level.If the water level is grossly insufficient as determined by the residualpulse count, the microcomputer will increase the water level by apredetermined amount without agitation. Otherwise, water will be addedwhile agitating. After the maximum water level has been reached, themicrocomputer 54 monitors the residual pulse count to determine whetheran overload condition exists and if so, actuates an overload display 610on the washing machine 600 and sets a flag to limit the stroke angle forthe remainder of the cycle. After the maximum water level has beenreached, the microcomputer 50 calls the agitate time routine ATR 300 tocompute the duration of the agitation period. If the agitation periodhas not expired, more agitation strokes are performed as discussed aboveuntil the agitation period has expired, at which time the microcomputer50 returns to the main program.

After returning to the main program from the agitation routine AR 450,the microcomputer 50 at steps 105 and 106 provides a cooldown period inthe permanent press cycle. The cooldown period typically involvesdraining to a preset water level, refilling to the wash water level withcold water, and, provding sufficient clothes agitation to achieve auniform wash bath temperature. The main program MP 100 than provides acomplete drain 107 with the pump motor 16 in all cycles prior to anyspin extraction. The main program MP 100 then calls the spin routineSPNR 550 a first time in step 108. The spin routine SPNR 550 provides aspin extraction period of appropriate duration for the size and selectedtype of clothes load.

More particularly, when the microcomputer 50 calls the spin routine 550,the CCW triac 32 is turned on and the motor start routine 200 is calledto determine when the motor is up to speed, i.e., the motor start time.The microcomputer 50 determines the duration of the spin routine inaccordance with the motor start time and the selected cycle parameterindicating a normal, delicate or permanent press cycle. For example, ifthe motor start time is long indicating a large inertial load, themicrocomputer 50 provides a longer spin time than if the motor starttime were short indicating a small initial load. The duration of thespin time is further longer for a normal load than for a permanent pressload, the spin duration of which is longer than the spin duration for adelicate cycle. After computing the remaining amount of spin time, themicrocomputer 50 calls an off balance routine 500 to compute the amountof dither in the PSC motor 10 for the purpose of detecting a spin offbalance. In order to compute the amount of dither, the microcomputerutilizes an auto-referencing technique which compares samples of thelagging phase angle of the PSC motor 10 taken from either the positiveor negative line half cycles. More particularly, a sum is accumulated ina register which represents the difference between each of apredetermined number of lagging phase angles sampled during either apositive or a negative half cycle. If the sum is equal to zero, nodither is present. However, if the sum is not equal to zero, the sumrepresents the cumulative motor phase dither. The motor phase dither issampled for a preset period of time after which the accumulated sum iscompared to a threshold value to determine whether an off balancecondition exists. If an off balance condition does exist, at the end ofthe sample period the PSC motor 10 is turned off. After completing thespin routine, the microcomputer 50 returns to the main program with thewash fill, wash agitation, drain and spin extraction periods completed.

The main program, in step 109, then provides an initial deep-rinse fillwith cold water to the same water level as had occured during the washagitation period. The main program than calls the agitate routine 450 asecond time in step 110 to provide automatic control and adjustment ofthe deep-rinse agitation period, deep-rinse water level, agitationstroke angle and agitation time as per the size and type of the clothesload. Deep-rinse agitation times are about four times shorter than washagitation times. Deep-rinse water levels are occasionally higher thanthe wash water levels because cold water causes the agitator blades tostiffen thereby increasing the load torque to the PSC motor 10. All thewater is drained in step 111 as previously in step 107. The main programMP 100 than calls the spin routine SPNR 550 a second time in step 112.As before, the spin routine SPNR 550 provides a spin extraction periodof appropriate duration for the size and type of the clothes load.Following completion of the final spin extraction in step 112, theprogram loops back to step 101 to re-initialize parameters and at step102 to wait for user initiation of the next cycle.

The following table represents the contents of various registers of themicrocomputer 50 utilized during the implementation of the flow chartsshown in FIGS. 11-19 as discussed in detail below.

    ______________________________________                                        DATA MEMORY REGISTER ALLOCATION TABLE                                         REGISTER DATA                                                                 ______________________________________                                        R1       Agitation time                                                       R2       Automatic water level control (AWLC) time                            R3       Stroke count                                                         R4       Sum of residual pulse count                                          R5       Residual pulse count                                                 R6       Computed optimal wash or rinse agitation time                        R7       Cumulative motor phase dither                                        R8       Sum of the last two consecutive lagging motor                                 phase numbers                                                        R9       Last lagging motor phase number                                      R10      Second last lagging motor phase number                               R11      Third last lagging motor phase number                                R12      Fourth last lagging motor phase number                               R13      Fifth last lagging motor phase number                                R14      Sixth last lagging motor phase number                                R15      Seventh last lagging motor phase number                              R16      Eighth last lagging motor phase number                               R17      Ninth last lagging motor phase number                                R18      Motor start time                                                     R19      Minimum sum of two consecutive lagging motor                                  phase numbers                                                        R20      Computed motor start threshold                                       R21      Cycle parameter                                                      R22      Dither sample time                                                   ______________________________________                                    

A flow chart for the lagging phase monitoring routine LPMR 150 is shownin FIG. 11. The lagging phase monitoring routine LPMR 150 is called bythe motor start routine MSR 200, the stroke routine SR 350 and theoff-balance routine OBR 500. The lagging phase monitoring routine LPMR150 is called to sample the main winding phase angle of the PSC motor 10when the PSC motor 10 is ON; or to delay one line half cycle when thePSC motor 10 is OFF. The lagging phase monitoring routine LPMR 150 maybe called as often as one time for each line voltage half cycle or 120times per second for a 60 Hz line voltage. More specifically, thelagging phase monitoring routine LPMR 150 delays at decision step 151until the volt pulse is gone. The lagging motor phase angle is the timefrom the leading edge of the volt pulse to the leading edge of thelagging current pulse as shown graphically in FIG. 8c and 8d. Programstep 151 gaurantees that this timing procedure will not inadvertantlybegin in the middle of a volt pulse. After falling through decision step151, the program loops through decision step 152 until the arrival ofthe leading edge of the next volt pulse. The timer of the microcomputer50 is started via an interrupt routine in program step 15 and themicrocomputer 50 drives the volt pulse echo output line 56 to thewatchdog circuit 90 LOW in step 154. The program than loops throughdecision step 155 until the volt pulse is gone whereupon the volt pulseecho output line 56 is allowed to go HIGH signaling to the watchdogcircuit 90 that the volt pulse circuit 70 and the microcomputer 50 arefunctioning in a normal manner. Program control is then returned to thecalling program via decision step 157 and step 158 if the PSC motor 10is OFF; otherwise, the program falls through to decision step 159.

The program then loops through decision steps 159 and 160 until either acurrent pulse arrives or a preset time limit expires. If a preset timelimit expires before the arrival of a current pulse as would be the casewith an OPEN motor overload protector 11, program control is returned tothe calling program via step 161; otherwise, the program advances tostep 162 upon the arrival of the leading edge of the next main windingcurrent pulse as is shown graphically in FIG. 8e. At program step 162the value of the timer of the microcomputer 50 at the leading edge ofthe current pulse is read via an interrupt routine and the elapsed timefrom the leading edge of the volt pulse to the leading edge of thecurrent pulse is stored in register R9 for the use of the callingprogram. Program control is then returned to the calling program in step163 with the main winding lagging PSC motor 10 phase number in registerR9. The actual motor phase number requires two 8-bit data bytes.However, the program steps that are required to manipulate datarequiring more than one 8-bit data byte are well known to those skilledin the art and will be omitted from this and all subsequent flow chartsto avoid unnecessary complexity.

A flow chart for the motor start routine MSR 200 is shown in FIG. 12.The motor start routine MSR 200 is called by the agitate routine AR 450to monitor the motor start time for each CW and CCW agitator stroke. Themotor start routine MSR 200 is also called by the spin routine SR 550 tomonitor the time required for the PSC motor 10 to accelerate the spinbasket. The motor start routine MSR 200 calls the lagging phasemonitoring routine LPMR 150 and uses a software auto-referencingtechnique to monitor a characteristic percentage increase in the laggingmain winding phase numbers of the PSC motor 10 which occurs when the PSCmotor 10 is fully accelerated. PSC motor start times are generally briefduring motor starting for each CW and CCW agitator stroke, and, muchlonger for spin basket acceleration. Software auto-referencingtechniques eliminate the need for costly individual factory or fieldcalibration of each washing machine 600.

More specifically, the motor start routine MSR 200 begins by clearingthe motor start time register R18 in step 201. The last lagging motorphase number in register R9 is moved to register R8 in step 202. Thelagging phase monitoring routine LPMR 150 is called in step 203. Thelagging phase monitoring routine LPMR 150 returns to the motor startroutine MSR at step 204 with the last main winding lagging motor phasenumber in register R9. In step 204 the sum of the last two consecutivelagging motor phase numbers is computed and stored in register R8. Thus,register R8 contains motor phase data from one positive and one negativeline voltage half cycle, thereby eliminating systematic bias due topossible line voltage or circuitry asymmetry on odd or even numberedline half cycles.

Program step 205 increments the motor start time in register R18.Decision step 206 forces the program to take the path through step 207and back to step 202 on the first four passes. This defines a minimumPSC motor 10 start time of five line half cycles, and, providessufficient time for good data to be accumulated over the last twoconsecutive motor phase samples. It is noted that on the first passthrough step 202, the register R9 contains meaningless information. Theregister R19 is used throughout the motor start routine to store theminimum sum of two consecutive lagging motor phase numbers. The registerR19 is initialized to an excessively large value on each pass throughstep 207 during the initial portion of the motor start procedure.Beginning with the fourth pass, the program falls through decision step206 to decision step 208. Decision step 208 defines a maximum motorstart time limit. This is necessary because a combination of low linevoltage and a large clothes load can cause a situation wherein the PSCmotor 10 never fully accelerates to a normal run speed. The time limitin decision step 208 is varied depending upon whether the PSC motor isin the agitate or spin mode since spin basket acceleration times areconsiderably longer than the acceleration times or motor start timesduring clothes agitation. If the time limit in decision step 208 isexceeded, the program control is returned to the calling program in step209; otherwise, the program falls through decision step 208 to decisionstep 210. Decision step 210 compares the sum of the last two consecutivelagging motor phase numbers in register R8 to the previous minimum sumof two consecutive lagging motor phase numbers in register R19. A newminimum is always found on the first pass through decision step 210because register R19 has previously been initialized to an excessivelylarge number. If a new minimum sum of two consecutive laging motor phasenumbers is found, the new number is moved to register R19 in step 211and the program loops back to step 202 to prepare for the next motorphase sample; otherwise, the program falls through to step 212. Programsteps 212 and 213 perform a test to determine whether or not the PSCmotor 10 has started. Step 212 computes a motor start threshold inregister R20. The motor start threshold is 1.25 times the minimum sum oftwo consecutive lagging motor phase numbers stored in register R19. Therequired motor start threshold is preferably computed by moving a copyof register R19 to register R20; dividing register R20 by two; anddividing register R20 by two once again so that the number now inregister R20 is the value of R19 divided by four. Finally, the number inregister R19 is added to the number in register R20. The desired motorstart threshold is now in register R20 and the original number stored inregister R19 is unaffected. Decision step 213 compares the sum of thelast two lagging motor phase numbers in register R8 to the motor startthreshold in register R20 and returns to the calling program via step214 with the PSC motor 10 fully started and the motor start time inregister R18 if the value in register R8 is larger than the threshold inR20; otherwise, the program loops back to step 202 to prepare for thenext lagging motor phase sample.

A flow chart for the cycle routine CR 250 is shown in FIG. 13. The cycleroutine CR 250 defines a parameter in microcomputer 50 data memoryregister R21 in accordance with the present user cycle selection. Thecycle routine CR 250 is called by the agitate time routine ATR 300, thestroke routine SR 350 and the spin routine SR 550 for the purpose ofautomatically adjusting the wash or deep-rinse agitation time, the CW orCCW stroke angle or the spin extraction time, respectively, inaccordance with the user cycle selection. The user may change the cycleselection at any time before initiating a cycle or during a cycle. Morespecifically, the cycle routine CR 250 interrogates a binary input 54 ora data memory flag set upon the previous momentary touching of a consolebutton 603, 605, 607 to determine whether the last user cycle selectionwas for the delicate cycle in step 251. If the delicate cycle isselected, the program falls through to step 252 whereupon data memoryregister R21 is loaded with twenty and program control is returned tothe calling program in step 253; otherwise, the program advances todecision step 254. Similarly, decision step 254 interrogates a binaryinput 54 or a data memory flag set upon the previous momentary touchingof a cosole button to determine whether the last user cycle selectionwas for the permanent press cycle. If the permanent press cycle isselected the program falls through to step 255 whereupon data memoryregister R21 is loaded with thirty and the program control is returnedto the calling program in step 256; otherwise, it is assumed that anormal, i.e., cotton cycle is selected and data memory register R21 isloaded with forty in step 257 and program control is returned to thecalling program in step 258.

A flow chart for the agitate time routine ATR 300 is shown in FIG. 14.The agitate time routine ATR 300 is called by the agitate routine AR 450to determine the optimal amount of time for agitation during wash anddeep-rinse clothes agitation periods in accordance with the watertemperature selection, the user cycle selection and the size of theclothes load, i.e., the water level. More specifically, the agitate timeroutine ATR 300 uses decision step 301 to loop down to step 302 duringdeep-rinse agitation when cold water is always used. During washagitation, the program falls through decision step 301 to decision step303. Decision step 303 loads data memory register R6 with three if hotwash water has been selected by the user; decision step 305 loadsregister R6 with four if warm wash water has been selected by the user;otherwise, cold wash water is assumed so that register R6 is loaded withfive. The program now calls the cycle routine CR 250 at step 307. Thecycle routine CR 250 returns with twenty, thirty or forty in registerR21 depending upon whether the delicate, permanent press or normal cyclehas been selected. The water level is sampled in step 308. The preferredanalog water level transducer is a pressure to frequency transducer.Water level measurements are made by the microcomputer 50 sampling thefrequency of a square wave binary input 54 and using an algorithm orlookup table to convert the measured frequency to a particular waterlevel. This procedure is known to those skilled in the art. For thepurpose of this disclosure it will be assumed that the water levelsample has been converted to a number from five to ten where fiverepresents a minimum water level and ten represents the maximum waterlevel. The optimal wash agitation time is computed in a data memoryregister R6 in step 309. The computed value of the wash agitation timein register R6 is equal to the old value of R6, times the value ofregister R21, times the water level and divided by thirty-two. Steps 310and 311 further divide the result in register R6 by four for thedeep-rinse agitation period so that the deep-rinse agitation time willbe approximately four times less than the wash agitation time. This isapproximate because the CW and CCW stroke time may change due to achange in the water temperature from the wash to the deep-rinseagitation periods. The agitate time routine ATR 300 returns to theagitate routine AR 450 at step 312 with the computed optimal agitationtime in register R6.

A flow chart for the stroke routine SR 350 is shown in FIG. 15. Thestroke routine SR 350 is called by the agitate routine AR 450 once foreach CW or CCW agitator stroke. The stroke routine SR 350 is calledimmediately after the PSC motor 10 is started to complete the poweredportion of the stroke in accordance with the size of the clothes loadand the user cycle selection. The stroke routine SR 350 uses theresidual pulse count data from the previous stroke and the motor starttime from the present stroke to compute the remaining time for thepowered portion of the present stroke and then times out the poweredportion of the present agitator stroke. The net effect of the strokeroutine SR 350 is to provide the optimal stroke angle for the presentclothes load, water level and user cycle selection.

More particularly, the microcomputer 50 at step 361 determines whetherthe overload flag is set and if so, the microcomputer 50 at step 363sets the register R21 equal to 24 to limit the duration of the agitatorstrokes for the remainder of the present cycle. If the overload flag isnot set, the microcomputer 50 calls the cycle routine CR 250 at step351. The cycle routine CR 250 returns to the stroke routine SR at step352 with twenty, thirty or forty loaded in data memory register R21 foruser selected delicate, permanent press or normal cycles, respectively.The stroke routine SR 350 uses data memory register R21 to compute theremaining time for the present agitator stroke. A program loopcomprising steps 352, 353 and 354 is used to increase the remainingstroke time in register R21 in accordance with the residual pulse countfrom the most previous agitator stroke in register R5. At the time thatthe stroke routine SR 350 is called, the number in register R5 is anumber from one to four which is highly correlated with the size of theclothes load. For a large clothes load register, R5 is one and for avery small clothes load, register R5 is four or more. The program loopof steps 352, 353 and 354 causes an increase in the duration of thepowered portion of the present agitator stroke if data from the mostprevious agitator stroke indicates that the clothes load is large.Specifically, the residual pulse count in register R5 is incremented atstep 352. The program falls through decision step 353 if the value ofregister R5 is five or more; otherwise, step 354 adds four units to thepresent value of register R21 and loops back to step 352. The poweredportion of the present agitator stroke, hence, the stroke angle, isincreased every time that the program loops through step 354. Programsteps 355 and 356 take into account the amount of time that was requiredfor the motor to start for the present agitator stroke. Program step 355divides the motor start time in register R18 by two and step 356subtracts one half the motor start time from the remaining stroke timein register R21. The remaining time for the powered portion of thepresent agitator stroke is now in register R21. At step 365 register R21is checked to determine if its value is less than or equal to zero andif so, the microcomputer 50 proceeds to step 360 to turn the PSC motortriac 31, 32 off completing the powered portion of the stroke. If thevalue of the register R21 is greater than zero, the microcomputer 60proceeds to step 357.

Program steps 357, 358 and 359 constitute a delay loop which providesthe remaining stroke time in accordance with the value of register R21.Specifically, step 357 calls the lagging phase montioring routine LPMR150 to delay for one line half cycle. Step 358 decrements register R21and decision step 359 causes the program to loop back to step 357 untilregister R21 has been decremented to zero. When the program fallsthrough decision step 359, step 360 cycles the PSC motor triac 31, 32OFF.

In actual practice step 360 does not need to know which PSC motor triac31 or 32 is ON. Both triacs 31 and 32 can be turned OFF in a singleprogramming step without affecting the triac 31 or 32 which is alreadyOFF. Thus, the stroke routine SR 350 returns to the agitate routine AR450 at the end of the powered portion of each CW and CCW agitator strokewith the PSC motor cycled OFF. The CW triac 31 or CCW trial 32 willcontinue to conduct until the next time that the triac currentapproaches a zero-crossing. However, a residual alternating current willcontinue to flow through a current loop comprising the capacitor 15 andthe PSC motor windings 12 and 13. This residual alternating currentcontains useful motor braking information and can be monitored bycounting the residual ferrite core current pulses at the completion ofthe powered portion of each CW and CCW agitator stroke. The number ofresidual current zero-crossings is inversely related to the size of theclothes load.

FIG. 9a, 9c, 9e and 9g shows graphic representations of the PSC motor 10currents immediately before and after the triac 31 or 32 stopsconducting. The main winding current Im is shown as a dashed line andthe auxiliary winding current Ia is a solid line. When the triac 31 or32 assumes the blocking state, the main winding current Im quicklyasumes the value of the auxiliary winding current Ia as the motor brakesto a stop. This residual, or braking current is labeled Ir. FIG. 9a, 9c,9e and 9g respectively represent the following washing machine loadwhile agitating: water only; a two pound indian head towel load; a fivepound indian head towel load; and an eleven pound indian head towelload. It is seen from these graphs that the residual alternating currentIr becomes progressively shorter with increasing clothes load as theresistance of the clothes load against the agitator helps to deceleratethe motor. In fact, the residual alternating current Ir is completelydissipated long before the PSC motor has actually come to a stop.However, the duration of the residual, or braking, current Ir is ameasure of the load torque on the agitator at the time that the motor iscycled OFF. FIG. 9b, 9d, 9f and 9h show the ferrite core current pulses46 corresponding to the PSC motor main Im and auxiliary Ia windingcurrent zero-crossings both prior to and after the triac 31 or 32 hasstopped conducting. The curent pulses 46 prior to triac cutout aresimilar to the current pulses 46 of FIG. 8e. After the triac 31 or 32stops conducting, both ferrite cores 20 and 23 experiance the samecurrent and generate induced voltage spikes in unison. The residualcurrent pulses stop when the magnitude of the residual alternatingcurrent falls below the level required to activate the ferrite cores 20and 23.

A flow chart for the residual pulse count routine RPCR 400 is shown inFIG. 16. The residual pulse count routine RPCR 400 is called by theagitate routine AR 450, immediately following the powered portion ofeach CW and CCW agitator stroke, to count the number of residualalternating current zero-crossings flowing through the PSC motorwindings 12 and 13. As shown in FIG. 9, the number of zero-crossings isinversely related to the PSC motor braking force; i.e., the size of theclothes load.

More specifically, the residual pulse count routine RPCR 400 temporarilydisables the watchdog circuit 90 in program step 401 by driving themicrocomputer 50 status output line 55 HIGH. The residual pulse countregister R5 is cleared in program step 402. The microcomputer 50 timeris started or restarted in step 403. The program then loops throughdecision steps 404 and 405 until either a residual current pulse occurs,or, sufficient time has elapsed for the assumption to be made that allthe residull current pulses for the CW or CCW agitator stroke have beencounted. Specifically, decision step 404 branches to program step 406when a current pulse is detected. The residual pulse count for this CWor CCW stroke is incremented in step 406. The program loops throughdecision step 407 until the current pulse is gone. The timer is thenrestarted in step 403. After all the current pulses for the CW or CCWstroke have been accumulated, the program falls through decision step405 to step 408. The residual pulse count for this CW or CCW stroke inregister R5 is added to a residual pulse summing register R4 in step408. In accordance with the agitate routine AR 450, the residual pulsesum register R4 is used to accumulate the sum of the residual pulsecounts over twenty consecutive CW and CCW agitator strokes for averagingpurposes. The watchdog circuit 90 is reactivated in step 409 by drivingthe binary status output line 55 of the microcomputer 50 LOW beforeprogram control is returned to the agitate routine AR 450 in step 410.

A flow chart for the agitate routine AR 450 is shown in FIG. 17. Theagitate routine AR 450 calls the motor start routine MSR 200, the strokeroutine SR 350, the residual pulse count routine RPCR 400 and theagitate time routine ATR 300 as subroutines. The agitate routine AR 450is called by the main program MP 100 for both the wash and thedeep-rinse agitation periods. The agitate routine AR 450 performs anumber of control functions during the wash and deep-rinse clothesagitation periods including automatic adjustment of the stroke angle,water level and agitation time for the size and selected type of clothesload.

More specifically, the agitate routine AR 450 clears the agitation timeregister R1 in step 451. The automatic water level control, AWLC, timeregister R2 is cleared in step 452. Program steps 453 through 461acumulate residual current pulse data for a preset number, i.e., twenty,of consecutive CW and CCW agitator strokes. Specifically, the strokecount register R3 is cleared in step 453. The residual pulse sumregister R4 is cleared in step 454. A time delay which defines a motorcoast or agitator hesitation period is provided in step 455 with the PSCmotor 10 OFF. The delay is preferably achieved by the repeated callingof the lagging phase monitoring routine LPMR 150. The CW PSC motor triac31 or the CCW PSC motor triac 32 is activated on alternate passes byprogram step 456 wherein a flag is used to remember which direction ofagitation had been used on the most previous pass through step 456. Themotor start routine MSR 200 is called at step 457. The motor startroutine returns to the agitate routine AR 450 with the PSC motor 10fully accelerated and the motor start time in register R18 forsubsequent use by the stroke routine SR 350. The stroke routine SR 350is called in step 458. The stroke routine SR 350 completes the poweredportion of the present CW or CCW agitator stroke in accordance with thesize of the clothes load and the user cycle selection. The strokeroutine SR 350 returns to the agitate routine AR 450 with the PSC motor10 OFF. The residual pulse count routine RPCR 400 is called in step 459.The residual pulse count routine RPCR 400 returns to the agitate routineAR 450 with the residual pulse count for the present CW or CCW agitatorstroke in register R5 and the cumulative residual pulse sum in registerR4. The data in register R5 will subsequently be used by the strokeroutine SR 350 to control the stroke angle and the cumulative data inregister R4 will be used by the agitate routine AR 450 to control thewater level. The stroke count register R3 is incremented in program step460. Decision step 461 loops back to step 455 until data for twentyconsecutive CW or CCW agitator strokes have been accumulated, whereuponthe programs falls through to decision step 462.

It is undesirable for the washing machine 600 to provide additionalwater fill just before the completion of a wash or deep-rinse agitationperiod and yet it is sometimes necessary to add additional water if theuser opens the lid to add additional clothes to the load when clothesagitation is already in progress. Beginning with decision step 462, theprogram loop comprising steps 463 and 465 in conjunction with steps 469and 474 combine to define the period or periods of time when theautomatic water level control AWLC procedure is active. Whenever the lidis open, it is assumed that the user might be adding additional clothesto the load so that the control checks to determine whether additionalwater is necessary and if so whether simultaneous agitation and waterfill may be performed. This check is made even if the lid is not openfor a fixed sample period as determined by step 469. Specifically, ifthe lid is open, program step 464 clears the AWLC time register R2. Ifthe machine overload display is ON, the display is turned OFF in step465. In other words, if a machine overload condition has previously beendetected, it will be assumed that the user has received the "machineoverload" message by the next time that the lid is opened. Or, if thelid is closed, the AWLC time register R2 is incremented in program step463. Decision step 466 aborts the AWLC procedure if the water is alreadyat the maximum level for the washing machine 600. However, thecumulative residual pulse sum data in register R4 can now be used tocheck for an overloaded machine condition in decision step 467. If theresidual current pulse sum in register R4 is below the machine overloadthreshold of, say, twenty-six decision step 467 branches to step 468 toprovide an overload indication by the microcomputer 50 turning on theconsole machine overload display or light emitting diode. At step 468the microcomputer 50 further sets a flag to cause the stroke routine SR350 to limit the duration of the CW and CCW agitator strokes for theremainder of the present cycle. Program control passes to step 475.Alternatively, if the water is below the maximum water level, decisionstep 469 passes program control to step 475 if the AWLC time in registerR2 has expired; otherwise, decision steps 470 and 471 are used todetermine whether or not additional water is needed and if so, whetheror not it is appropriate to allow simultaneous clothes agitation duringthe additional water fill procedure. Specifically, decision step 470compares the residual pulse sum register R4 to a threshold designed todetermine if the present water level is grossly insufficient. Ifregister R4 is less than, say, thirty-eight, decision step 470 branchesto program step 473 which pauses to fill three additional verticalinches of water or until the maximum water level is attained, beforeadvancing to program step 474. Otherwise, decision step 470 branches todecision step 471 which compares the residual pulse sum register R4 to aless severe threshold, for example, forty-five and branches to step 475if the present water level is adequate or to step 472 if additionalwater is required. Program step 472 activates the appropriate fillsolenoids 66 and/or 67 in accordance with the wash or deep-rinse cyclestatus and the user water temperature selection and immediately advancesto program step 474 to facilitate simultaneous clothes agitation andwater fill. Program step 474 clears the AWLC time register R2. Thisassures that the automatic water level control AWLC period will not timeout during or immediately after an AWLC water fill procedure has takenplace. The program then loops back to step 453 to sample data from thenext twenty agitation strokes.

Program step 475 deactivates the fill solenoids 66 and 67. If the fillsolenoids are already OFF, step 475 has no effect. The agitate timeroutine ATR 300 is called at step 476. The agitate time routine ATR 300computes the optimal clothes agitation time in accordance with thecycle, water temperature, water level and wash or deep-rinse cyclestatus. The agitate time routine ATR 300 returns to the agitate routineAR at step 477 with the desired agitation time in register R6. Theelapsed agitation time register R1 is incremented in step 477. Note thatthe elapsed agitation time register R1 is not incremented during periodsof water fill or simultaneous water fill and clothes agitation. Decisionstep 478 compares the elapsed agitiation time in register R1 with thecomputed optimal agitation time in register R6 and branches to step 479if the elapsed wash or deep-rinse agitation time exceeds the optimalagitation time. Otherwise, the program loops back to step 453 to sampledata from the next twenty agitation strokes.

The agitate routine AR 450 thus provides from about three to eighteenminutes of wash agitation with the shortest agitation time for adelicate cycle with a minimal clothes load in hot water and the maximumagitation time for a normal, i.e., cotton cycle with a maximum clothesload in cold water. The deep-rinse agitation times are about one fourthas long as the corresponding wash agitation times. The water level andduration of each CW and CCW stroke is automatically adjusted for thesize and type of clothes load. The user is free to change the cycleselection and water temperature selection at any time and the user mayadd additional clothes to the load by opening the lid at any time duringthe cycle. A machine overload condition is detected and communicated tothe user. If additional water is necessary, the control provides eithercontinuous fill and agitation or fill without simultaneous agitation inaccordance with the degree to which the present water level isinsufficient.

A flow chart for the off-balance routine OBR 500 is shown in FIG. 18.The off-balance routine OBR 500 is called 120 times per second by thespin routine SPNR 550 to compute the amount of dither in the PSC motor10 torque for the purpose of detecting a spin off-balance condition. Ata step 501 the off-balance routine OBR 500 adjusts a data memory stackcomprising the last nine lagging motor phase numbers. Specifically, theeighth last lagging motor phase number in register R16 becomes the newninth last lagging motor phase number in register R17. The seventh lastlagging motor phase number in register R15 becomes the new eighth lastlagging motor phase number in register R16. Similarly, the contents ofthe register R14 is moved to the register R15. The contents of theregister R13 is moved to the register R14. The contents of the registerR12 is moved to the register R13. The contents of the register R11 ismoved to the register R12. The contents of the register R10 is moved tothe register R11. And the most recent lagging motor phase number inregister R9 is moved to the second last lagging motor phase numberposition in register R10. The lagging phase monitoring routine LPMR 150is called in program step 502. The lagging phase monitoring routine LPMRreturns to the off-balance routine OBR at step 503 with the new lastlagging motor phase number in register R9. The data stack of the lastnine lagging motor phase numbers is fully loaded when the off-balanceroutine OBR 500 has been called for nine or more consecutive line halfcycles.

When the data stack is loaded, the data memory registers R9, R11, R13,R15 and R17 all contain data from either positive, or negative line halfcycles. An auto-referencing technique is used in program step 503 toaccumulate a number related to the dither in the PSC motor 10 torquewhich is substantially unaffected by asymmetry between positive andnegative line voltage half cycles or by component variations betweencomparator circuits CM 2 and CM 3 of the current pulse circuit 40. Moreparticularly, at step 503, the absolute value of the difference betweenregister R11 and register R9 is added to register R7; the absolute valueof the difference between register R13 and R9 is added to register R7;the absolute value of the difference between register R15 and R9 isadded to register R7; and the absolute value of the difference betweenregister R17 and R9 is added to register R7. Register R7 represents thecumulative dither in the PSC motor 10 torque.

As will be shown in subsequent program steps, the off-balance routineOBR 500 accumulates the motor dither in register R7 for a preset sampleperiod and periodically compares the accumulated dither number to apreset threshold number to determine whether or not the spin basket issufficiently unbalanced to introduce excessive motor torque dither ormotor torque "hunting" into the spin drive train of the washing machine600. The off-balance sample count register R22 is incremented in programstep 504. Decision steps 505 and 506 cause the program to branch to step511 after the first eight times that the off-balance routine OBR 500 iscalled by the spin routine SR 550 to initialize parameters afterassuring that the data stack of the last nine lagging motor phasenumbers contains good data. Specifically, decision step 505 branches todecision step 506 if the sample count register R22 is eight; otherwise,the program falls through decision step 505 to decision step 507.Decision step 506 branches to step 511 on the first pass for each spinextraction period; otherwise, the program falls through decision step506 to decision step 507. Those who are skilled in the art will know howa flag can be used for this purpose. Decision step 507 branches todecision step 509 when the present motor dither sample has beencompleted; otherwise, the program falls through decision step 507 tostep 508 wherein the program returns to the spin routine SPNR 550.Decision step 509 compares the accumulated PSC motor 10 dither number inregister R7 to a preset threshold. Decision step 509 branches to step510 to return to the spin routine SPNR 550 with register R22 equal to240 if the PSC motor 10 dither is above threshold; otherwise, theprogram falls through decision step 509 to step 511. Program steps 511and 512 clear the spin off-balance parameters in preparation for thenext PSC motor 10 dither sample. Specifically, step 511 clears thesample count register R22 and step 512 clears the motor dither number inregister R7 prior to returning to the spin routine SPNR 550 at step 513.

A flow chart for the spin routine SPNR 550 is shown in FIG. 19. The spinroutine SPNR 550 automatically adjusts the spin extraction time as perthe user cycle selection and the time required for the spin basket tofully accelerate; i.e., the time required for the motor to start whenaccelerating the spin basket load. The spin routine aborts the remainingspin period if a spin off-balance condition is detected by theoff-balance routine OBR. More specifically, the spin routine SPNR 550activates the spin direction PSC motor 10 triac 32 at step 551 and callsthe motor start routine MSR 200 at step 552. The motor start routine MSR200 returns to the spin routine SPNR 550 several seconds later with themotor start time; i.e., the spin basket acceleration time, in registerR18. Large clothes loads of highly absorbent material present a largerinertial load to the PSC motor 10 and, hence, require a longer spinbasket acceleration time than small clothes loads or loads comprised ofless absorbent material. The spin basket acceleration time is thushighly correlated with the optimal spin extraction time for any givenclothes load. Note that this parameter, spin basket acceleration time,does not require any sensors in the tub or drain area of the washingmachine as is often the case with prior art controls featuring anend-of-spin detection capability. Such prior art sensors can becomecoated with calcium carbonate material in hard water areas and provideadditional opportunity for a water leak in the tub or drain area.

The spin routine SPNR 550 then calls the cycle routine CR 250 at step553. The cycle routine CR 250 returns to the stroke routine SR at step352 with twenty, thirty or forty loaded in data memory register R21 foruser selected delicate, permanent press or normal cycles, respectively.The spin routine then combines the cycle information with the abovemotor start time information to compute the optimal remaining spin timeat step 554. Specifically, a "multiply by successive addition"subroutine is used to multiply the cycle parameter in register R21 bythe motor start time in register R18 such that the result is in registerR21. Program step 555 clears the off-balance routine OBR 500 motordither sample time in register R22 prior to the first calling of theoff-balance routine OBR 500. The program then loops through steps 556,557, 558 and 559 until either the optimal spin time is completed oruntil a spin off-balance condition has been detected by the off-balanceroutine OBR 500. Specifically, the off-balance routine OBR 500 is calledat program step 556. The off-balance routine OBR 500 returns to the spinroutine SPNR 550 at decision step 557 with the dither sample timeregister R22 loaded with 240 if a spin off-balance condition has beendetected. Decision step 557 branches to program step 558 to abort theremaining spin time if register R22 is 240; otherwise, the program fallsthrough decision step 557 to step 560 which decrements the remainingspin time register R21. Decision step 561 terminates the spin extractionperiod by branching to program step 558 when the remaining spin time inregister R21 has been decremented to zero; otherwise, the programbranches back to step 556.

Although the preferred embodiment contains a motor start routine MSR 200and an off-balance routine OBR 500 which use lagging PSC motor 10 phasedata, those skilled in the art will recognize that similar routinescould be developed which use leading PSC motor phase data with amodified phase monitoring routine. The exemplary embodiment was chosento use two ferrite core sensors 20 and 23 because this is the mostgeneral case; i.e., both leading and lagging PSC motor 10 phaseinformation is available regardless of whether the PSC motor 10 isoperating in the CW or the CCW direction.

Other sensor configurations are shown in FIGS. 1b, 1c and 1d. Each ofthese configurations results in a circuit cost reduction, but does notprovide all of the phase information that is available from theconfiguration of FIG. 1a. In FIG. 1i, a single ferrite core sensor 23 isused to acquire lagging PSC motor main winding phase data when the CCWtriac 32 is active or leading motor auxiliary winding phase data whenthe CW triac 31 is active. In FIG. 1c, a single ferrite core sensor 23is used to acquire leading PSC motor auxiliary winding phase data ineither the CW or CCW motor direction. The circuits of FIG. 1i and 1calso provide residual alternating current information as with theexemplary circuit. In FIG. 1d, a single ferrite core sensor 23 is usedto acquire PSC motor phase data for the total resultant PSC motorcurrent of the combined main and auxiliary windings. More particularly,the primary winding 14 of the core 23 in FIG. 1d is the resultant of themain and auxiliary winding currents. The single ferrite core 23 circuitof FIG. 1d does not provide residual alternating current informationbecause the primary winding of the core 23 is not formed of either ofthe PSC motor windings 12 or 13 and the core 23 is not in the residualcurrent loop of the capacitor 15. Further, the basic PSC motor phaseinformation is not as useful with the circuit of FIG. 1d as with any ofthe other configurations, because an increase in motor torque causesopposite effects in the main and auxiliary winding currents.

Many modifications and variations of the present invention are possiblein light of the above teachings. Accordingly, it is to be understoodthat, within the scope of the appended claims, the invention may bepracticed otherwise than as specifically described hereinabove.

What is claimed and desired to be secured by Letters Patent is:
 1. Acontrol system for an automatic washing machine having an agitationmeans and a motor with a first winding, said motor being coupled to saidagitation means for drive said agitation means, said control systemcomprising:means for cyclnig said motor off; means for sensing theresidual alternating current in said motor when said motor is cycled offand for providing a representation thereof; and means for controllingthe operation of said washing machine in response to said residualcurrent representation, wherein said control means automaticallycontrols the level of water in said washing machine in response to theduration of said residual current representation such that the smallersaid duration representation, the higher said water level.
 2. Thecontrol system of claim 1 including means responsive to the duration ofsaid residual current representation for detecting an overload conditionin said washing machine.
 3. The control system of claim 1 includingmeans for determining whether or not to cause said motor to agitatewhile increasing said water level.
 4. The control system of claim 1including means for summing the durations of said residual currentrepresentations over a predetermined number of agitator strokes toprovide a representation of said sum, said water level control meanscontrolling said water level such that the smaller said sumrepresentation, the higher said water level.
 5. The control system ofclaim 4 including means responsive to said sum representation fordetecting an overload condition in said washing machine.
 6. The controlsystem of claim 1 wherein said motor is a permanent split capacitormotor wherein said means for sensing the residual alternating currentcomprises:means for sensing zero crossings of alternating current in amotor winding when said motor is cycled off to provide a signalrepresentative thereof; and means for counting the number of sensed zerocrossings to provide a sum, said sum being inversely related to thebraking force on said motor.
 7. The control system of claim 6 whereinsaid control means automatically controls the level of water in saidwashing machine in response to said sum representation such that thesmaller said sum representation, the higher said water level.
 8. Thecontrol system of claim 7 including means responsive to said sumrepresentation for detecting an overload condition in said washingmachine.
 9. The control system of claim 7 including means fordetermining whether or not to cause said motor to agitate whileincreasing said water level.
 10. The control system of claim 7 includingmeans for adding said sum representations over a predetermined number ofmotor strokes to provide a total representation, said water levelcontrol means controlling said water level such that the smaller saidtotal representation, the higher said water level.
 11. The controlsystem of claim 10 including means responsive to said totalrepresentation for detecting an overload condition in said washingmachine.
 12. The control system of claim 7 including means responsive tosaid sum representation for detecting an overload condition in saidwashing machine.
 13. The control system of claim 6 wherein said controlmeans includes means for controlling the stroke angle of said agitationmeans in response to said sum representation wherein the smaller saidsum representation, the greater said stroke angle.
 14. The controlsystem of claim 6 wherein said washing machine includes means actuableby a user for selecting a cycle and providing a representation of saidcycle selection, and wherein said control means includes means forcontrolling the stroke angle of said agitator in response to said sumrepresentation and said cycle selection.
 15. The control system of claim6 wherein said control means is responsive to said sum representation todetermine the duration of an agitation operation of said washingmachine.
 16. The control system of claim 1 wherein said control meansincludes means for controlling the stroke angle of said agitator inresponse to said residual current duration representation wherein thesmaller said duration representation, the greater said stroke angle. 17.The control system of claim 1 wherein said washing machine includesmeans actuable by a user for selecting a cycle to provide arepresentation of said cycle selection and said control means includesmeans for controlling the stroke angle of said agitator in response tosaid residual current duration representation and said cycle selectionrepresentation.
 18. The control system of claim 1 wherein said controlmeans is responsive to said residual current duration representation todetermine the size of the load in said washing machine during a waterfill operation, an agitation operation, or a rinse operation.
 19. Thecontrol system of claim 1 wherein said control means is responsive tosaid residual current duration representation to determine the durationof an agitation operation of said washing machine.
 20. The controlsystem of claim 19 wherein said washing machine includes means actuableby a user for selecting a cycle and providing a representation thereof,and wherein said duration determining means is further responsive tosaid cycle selection representation to determine said duration.
 21. Thecontrol system of claim 20 wherein said washing machine includes meansactuable by a user for selecting a temperature and providing arepresentation thereof, wherein said duration determining means isfurther responsive to said temperature selection representation todetermine said duration.
 22. An automatic washing machinecomprising:agitation means for agitating a load; a reversible motor withfirst and second windings, said motor being coupled to said agitationmeans to drive said agitation means; means for periodically energizingsaid motor for causing said motor alternately to rotate in oppositedirections and for cycling said motor off between energization; meansfor sensing the residual alternating current in said first and secondmotor windings when said motor is cycled off and for providing arepresentation thereof; and means for controlling the operation of saidwashing machine in response to said residual current representation,wherein said means for controlling the operation of said washing machinein response to said residual current representation comprises means forcontrolling the stroke angle of said agitation means in response to saidresidual current.
 23. The automatic washing machine in claim 22 whereinsaid motor is a permanent split capacitor motor.
 24. The automaticwashing machine of claim 23 wherein said means for sensing said residualcurrent comprises:means for counting the number of sensed zero crossingsto provide a sum, said sum being inversely related to the braking forceon said motor.
 25. The automatic washing machine of claim 22 whereinsaid means for controlling the operation of said washing means inresponse to said residual current representation comprises means forcontrolling the duration of an agitation cycle of said automatic washingmachine in response to said residual current.
 26. The automatic washingmachine of claim 22 wherein said means for controlling the operation ofsaid washing machine in response to said residual current representationcomprises means for controlling the level of water in said automaticwasher in response to said residual current.
 27. The automatic washingmachine of claim 22 wherein said means for controlling the operation ofsaid washing machine in response to said residual current representationcomprises means for detecting an overload condition in said washer. 28.The automatic washing machine of claim 22 wherein said means forcontrolling the operation of said washing machine in response to saidresidual current representation comprises means for determining whetheror not to operate said motor to drive said agitation means during a filloperation in response to said residual current representation.
 29. Theautomatic washing machine of claim 22 further comprising means forsensing the load on the motor when the motor is operating under powerand for providing a representation of said load, said controlling meanscontrolling the operation of said washing machine in response to bothsaid representation of said residual current and said representation ofsaid load.
 30. The automatic washing machine of claim 29 wherein:saidresidual current sensing means comprises means for sensing and countingthe number of zero crossings of alternating current when said motor iscycled off; and further wherein said load sensing means ,comprises meansfor determining the motor phase angle and for detecting a characteristicincrease in said motor phase angle representing the time when said motorattains full operating speed.
 31. The automatic washing machine of claim22 further comprising cycle selection means for selecting a cycle ofoperation for said washing machine, said controlling means controllingthe operation of said washing machine in response to both saidrepresentation of said residual current and said representation of saidcycle.
 32. A method of washing clothes in an automatic washing machinehaving a rotatable laundering vessel, an agitator disposed within saidvessel, a reversible permanent split capacitor motor coupled to saidrotatable laundering vessel and said agitator to selectively drive saidrotatable laundering vessel and said agitator, said motor having firstand second windings and being powered by a power supply having analternating line voltage, said method comprising the stepsof:periodically energizing said motor to effect agitation of saidagitator and sensing zero crossings of alternating current in said firstand second motor windings when said motor is cycled off betweenenergizations thereof to provide a signal representative thereof;counting the number of sensed zero crossings to provide a sum, said sumbeing inversely related to the braking force on said motor; andcontrolling the operation of said washing machine in response to saidbraking force representation, wherein said step of controlling theoperation of said washing machine in response to said braking forcerepresentation comprises controlling the stroke angle of said agitatorin response to said braking force.
 33. The method of claim 32 whereinsaid step of controlling the operation of said washing machine inresponse to said braking force representation comprises determiningwhether or not to operate said motor to drive said agitation meansduring a fill operation in response to said braking forcerepresentation.
 34. The method of claim 32 wherein said step ofcontrolling the operation of said washing machine in response to saidbraking force representation comprises:controlling the stroke angle ofsaid agitator in response to said braking force; controlling theduration of an agitation cycle of said automatic washing machine inresponse to said braking force; controlling the level of water in saidautomatic washing machine in response to said braking force; anddetermining whether or not to operate said motor to drive said agitationmeans during a fill operation in response to said braking forcerepresentation.
 35. A method of washing clothes in an automatic washingmachine having a rotatable laundering vessel, an agitator disposedwithin said vessel, a reversible permanent split capacitor motor coupledto said rotatable laundering vessel and said agitator to selectivelydrive said rotatable laundering vessel and said agitator, said motorhaving first and second windings and being powered by a power supplyhaving an alternating line voltage, said method comprising the stepsof:periodically energizing said motor to effect agitation of saidagitator and sensing zero crossings of alternating current in said firstand second motor windings when said motor is cycled off betweenenergizations thereof to provide a signal representative thereof;counting the number of sensed zero crossings to provide a sum, said sumbeing inversely related to the braking force on said motor; andcontrolling the operation of said washing machine in response to saidbraking force representation, wherein said step of controlling theoperation of said washing machine in response to said braking forcerepresentation comprises controlling the duration of an agitation cycleof said automatic washing machine.
 36. The method of claim 35 whereinsaid step of controlling the operation of said washing machine inresponse to said braking force representation comprises determiningwhether or not to operate said motor to drive said agitation meansduring a fill operation in response to said braking forcerepresentation.
 37. A method of washing clothes in an automatic washingmachine having a rotatable laundering vessel, an agitator disposedwithin said vessel, a reversible permanent split capacitor motor coupledto said rotatable laundering vessel and said agitator to selectivelydrive said rotatable laundering vessel and said agitator, said motorhaving first and second windings and being powered by a power supplyhaving an alternating line voltage, said method comprising the stepsof:periodically energizing said motor to effect agitation of saidagitator and sensing zero crossings of alternating current in said firstand second motor windings when said motor is cycled off betweenenergizations thereof to provide a signal representative thereof;counting the number of sensed zero crossings to provide a sum, said sumbeing inversely related to the braking force on said motor; andcontrolling the operation of said washing machine in response to saidbraking force representation, wherein said step of controlling theoperation of said washing machine in response to said braking forcerepresentation comprises controlling the level of water in saidautomatic washing machine in response to said braking force.
 38. Themethod of claim 37 wherein said step of controlling the operation ofsaid washing machine in response to said braking force representationcomprises determining whether or not to operate said motor to drive saidagitation means during a fill operation in response to said brakingforce representation.
 39. A method of washing clothes in an automaticwashing machine having a rotatable laundering vessel, an agitatordisposed within said vessel, a reversible permanent split capacitormotor coupled to said rotatable laundering vessel and said agitator toselectively drive said rotatable laundering vessel and said agitator,said motor having first and second windings and being powered by a powersupply having an alternating line voltage, said method comprising thesteps of:periodically energizing said motor to effect agitation of saidagitator and sensing zero crossings of alternating current in said firstand second motor windings when said motor is cycled off betweenenergizations thereof to provide a signal representative thereof;counting the number of sensed zero crossings to provide a sum, said sumbeing inversely related to the braking force on said motor; andcontrolling the operation of said washing machine in response to saidbraking force representation, wherein said step of controlling theoperation of said washing machine in response to said braking forcerepresentation comprises detecting an overload condition in said washingmachine.
 40. The method of claim 39 wherein said step of controlling theoperation of said washing machine in response to said braking forcerepresentation comprises determining whether or not to operate saidmotor to drive said agitation means during a fill operation in responseto said braking force representation.
 41. An automatic washing machinepowered by a supply having an alternating line voltage comprising:anagitator; a spin basket; a permanent split capacitor motor coupled tosaid agitator and to said spin basket to selectively drive said agitatorand spin basket, said motor having first and second windings; meanscoupled to said motor for periodically energizing said first and secondwindings to cause said motor to effect agitation and for cycling saidmotor off between successive energizations to effect agitation of saidagitator; means for sensing zero crossings of alternating current insaid first and second motor windings when said motor is on to provide arepresentation of said current zero crossings and, when said motor iscycled off, to provide a representation of residual current flowingthrough said first and second motor windings; means responsive to saidline voltage and said current zero crossing representation fordetermining a motor phase angle to provide a representation thereof; andmeans for controlling various operations of said washing machine inresponse to said residual current representation and said motor phaseangle representation, wherein said control means includes means fordetermining the optimal stroke angle of said agitator, said cyclingmeans being responsive to said control means for cycling said motor offin accordance with said optimal stroke angle.
 42. An automatic washingmachine as recited in claim 41 wherein said control means includes meansresponsive to said residual current representation for automaticallycontrolling the level of water in said washing machine in accordancewith the size of the load in said washing machine.
 43. An automaticwashing machine as recited in claim 42 wherein said control meansincludes means responsive to said residual current representation fordetermining an overload condition while controlling the level of waterin said washing machine.
 44. An automatic washing machine as recited inclaim 42 wherein said control means includes means responsive to saidresidual current representation for determining whether said motorshould be cycled off to stop agitation while increasing the water levelin said washing machine.
 45. An automatic washing machine as recited inclaim 41 wherein said control means includes means responsive to saidresidual current representation for determining the duration of anagitation operation of said washing machine.
 46. An automatic washingmachine as recited in claim 41 wherein said control means includes meansresponsive to said motor phase angle representation for determining theduration of a spin operation of said washing machine.
 47. An automaticwashing machine powered by a supply having an alternating line voltagecomprising:an agitator; a spin basket; a permanent split capacitor motorcoupled to said agitator and to said spin basket to selectively drivesaid agitator and spin basket, said motor having first and secondwindings; means coupled to said motor for periodically energizing saidfirst and second windings to cause said motor to effect agitation andfor cycling said motor off between successive energizations to effectagitation of said agitator; means for sensing zero crossings ofalternating current in said first and second motor windings when saidmotor is on to provide a representation of said current zero crossingsand, when said motor is cycled off, to provide a representation ofresidual current flowing through said first and second motor windings;means responsive to said line voltage and said current zero crossingrepresentation for determining a motor phase angle to provide arepresentation thereof; and means for controlling various operations ofsaid washing machine in response to said residual current representationand said motor phase angle representation, wherein said control meansincludes means responsive to said motor phase angle representation fordetermining the amount of dither in said motor during a spin operationof said washing machine.
 48. An automatic washing machine as recited inclaim 41 wherein said control means includes means responsive to thedetermined amount of dither for determining an off balance conditionduring said spin operation.
 49. An automatic washing machine as recitedin claim 47 wherein said control means includes means for determiningthe optimal stroke angle of said agitator, said cycling means beingresponsive to said control means for cycling said motor off inaccordance with said optimal stroke angle.
 50. An automatic washingmachine as recited in claim 47 wherein said control means includes meansresponsive to said residual current representation for automaticallycontrolling the level of water in said washing machine in accordancewith the size of the load in said washing machine.
 51. An automaticwashing machine as recited in claim 50 wherein said control meansincludes means responsive to said residual current representation fordetermining an overload condition while controlling the level of waterin said washing machine.
 52. An automatic washing machine as recited inclaim 50 wherein said control means includes means responsive to saidresidual current representation for determining whether said motorshould be cycled off to stop agitation while increasing the water levelin said washing machine.
 53. An automatic washing machine as recited inclaim 47 wherein said control means includes means responsive to saidresidual current representation for determining the duration of anagitation operation of said washing machine.
 54. An automatic washingmachine as recited in claim 47 wherein said control means includes meansresponsive to said residual current representation for determining theduration of a spin operation of said washing machine.